| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 634 人关注过本帖
标题:ACM水题
只看楼主 加入收藏
manesol
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-7-6
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:9 
ACM水题
Description
Mr.zhou喜欢收集长度为10的字符串,并且同样的字符串总是收集偶数个。有一天,他丢失了一个,由于他收集的太多,他无法确定丢失的是哪一个。对此,集训队的各位大牛也表示无能为力,请你帮Mr.zhou找到他丢失的字符串。

Input
一个整数N (1 =< N <= 499999),N是奇数,表示Mr.zhou丢失一个字符串后剩余的字符串的个数。
接下来N行是Mr.zhou剩余的字符串

Output
输出一行,一个长度为10的Mr.zhou丢失的字符串

Sample Input
Original    Transformed
5
svyzshitjq
jmbdutpigq
ixogzmfcem
svyzshitjq
jmbdutpigq

Sample Output
Original    Transformed
ixogzmfcem


程序代码:
#include <stdio.h>
#include <string.h>
typedef struct data{
    char s[11];
    long t;
}type;

long findstr(char st[],type str[],long n)
{
    long i;
    for(i=0;i<n;i++)
    {
        if(strcmp(st,str[i].s)==0)
            return i;
    }
    if(i==n)
        return 0;
}
int main()
{
    type str[1000];
    char st[11];
    long i,n,flag,j;
    scanf("%ld",&n);
    i=0;
    while(n--)
    {
        scanf("%s",st);
        flag=findstr(st,str,i);
        if(flag==0)
        {
            strcpy(str[i].s,st);
            str[i].t=0;
            i++;
        }
        else
            str[flag].t=(str[flag].t+1)%2;
    }
    for(j=0;j<i;j++)
    {
        if(str[j].t==1)
            printf("%s\n",str[j].s);    
    }

    return 0;
}
搜索更多相关主题的帖子: 字符串 
2013-08-02 18:59
manesol
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-7-6
收藏
得分:0 
程序出错了,检查不出来,求教
2013-08-02 19:00
manesol
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-7-6
收藏
得分:0 
2013-08-02 19:24
manesol
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-7-6
收藏
得分:0 
太水了都懒得回复么
2013-08-02 19:28
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:10 
你现在的水平还是别说这题水的好,你这解题方法更水。

题目中字符串的上限是50万,你开个1000的数组不知道是谁在骗谁。按你这做法,应该开个25万的数组。

而正解用两个数组足矣。送你个关键词——异或。

重剑无锋,大巧不工
2013-08-02 21:08
manesol
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-7-6
收藏
得分:0 
以下是引用beyondyf在2013-8-2 21:08:24的发言:

你现在的水平还是别说这题水的好,你这解题方法更水。

题目中字符串的上限是50万,你开个1000的数组不知道是谁在骗谁。按你这做法,应该开个25万的数组。

而正解用两个数组足矣。送你个关键词——异或。

两个数组异或?
2013-08-02 22:11
manesol
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-7-6
收藏
得分:0 
以下是引用beyondyf在2013-8-2 21:08:24的发言:

你现在的水平还是别说这题水的好,你这解题方法更水。

题目中字符串的上限是50万,你开个1000的数组不知道是谁在骗谁。按你这做法,应该开个25万的数组。

而正解用两个数组足矣。送你个关键词——异或。


大神明示啊
2013-08-02 22:16
manesol
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-7-6
收藏
得分:0 
拙计啊
2013-08-02 22:20
manesol
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-7-6
收藏
得分:0 
2013-08-02 22:23
manesol
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2013-7-6
收藏
得分:0 
回复 5楼 beyondyf
多谢哈,懂了原理,只是字符之间可以异或吗?或者要怎么转换呢?
2013-08-02 22:34
快速回复:ACM水题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052426 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved