南航 OJ 1184 迷失的邮票

今天群里以朋友问了我一道题,是南航的OJ,AC了顺便放上来。

题目地址:

http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1184

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 #include <stdio.h>
 
long stamp[1000000];
long x;
 
int main()
{
	long n;
	int i;
	long max_x = 0;
	scanf("%ld", &n);
	for(i = 0; i < n-2; i++)
	{
		scanf("%ld", &x);
		if(max_x < x)
			max_x = x;
		if(stamp[x] == 0)
			stamp[x] = 1;
		else
			stamp[x] = 0;
	}
	int cnt = 0;
	for(i = 0; i <= max_x; i++)
	{
		if(stamp[i] && cnt == 0)
		{
			printf("%d ", i);
			cnt++;
		}
		else if(stamp[i] && cnt == 1)   //第二个数后面还不能有空格,否则“描述错误”
		{
			printf("%d\n", i);
			cnt++;
		}
		if(cnt == 2)
			break;
	}
	return 0;
}

发布者

Tanky Woo

Tanky Woo,[个人主页:https://tankywoo.com] / [新博客:https://blog.tankywoo.com]

《南航 OJ 1184 迷失的邮票》有9,543个想法

  1. @lifishake
    有个更好的代码,但是看不懂。。。
    #include
    int main()
    {
    int f[32]={0},g[32];
    int i,j,t,s=0,n,a,b;
    for(i=0;i<31;++i)
    g[i]=1< =g[j];++j)
    if(1&(t>>j))
    f[j]^=t;
    s^=t;
    }
    for(i=0;i<32;++i)
    if(f[i]&&f[i]!=s)
    break;
    a=f[i];b=s^a;
    if(a>b) //a.b互换
    a^=b,b^=a,a^=b;
    printf(“%d %d\n”,a,b);
    return 0;
    }

  2. 输入少的时候,我的方法比较快
    /*
    MAP[OldTotal/2][2]
    */

    int main()
    {
    long lTotal = 0;
    long i = 0;
    long x = 0;
    sscanf(“%ld”, &lTotal);
    if (lTotal – 2 1000000 || (lTotal%2 != 0) )
    {
    printf(“Bad Input.\n”);
    return -1;
    }
    unsigned int* pnStams = malloc(lTotal , sizeof(int));
    memset(pnStams, lTotal, 0);
    for(i = 0; i = x) || (0xFFFFFFFF<x) )
    {
    printf("Bad Input.\n");
    return -1;
    }
    bool bFound = false;
    for(j=0; j<lTotal; j+=2)
    {
    if (x == pnStams[j])
    {
    pnStams[j+1] +=1;
    bFound = true ;
    break;
    }
    }
    if (!bFound)
    {
    pnStams[i] = (unsigned int)x;
    pnStams[i+1] += 1;
    }
    }
    for(i=1; i<lTotal+1; i+=2)
    {
    if ( 2 != pnStams[i] )
    {
    printf("%d\n", i);
    }
    }
    free(pnStams);
    pnStams = NULL;

    return 0;
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注