众数问题和骨牌铺方格

感悟

经过学习了一段时间的html+css,我有点迷茫,,,这前端好像并不是我想象的那么美好,看了下招聘的岗位,大多数都是JAVA。


认真想了想,感觉自己还是适合后端的工作,前端稍微了解一下就可以了,保证交接时不出现错误。


听学长们说,数据结构和算法也是很关键的事情,所以

我决定重新拾起我的数据结构和算法,再加上JAVA,还有一年的时间,不算太晚。

骨牌铺方格

题目链接:http://http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/3015/pid/1018
思路:用桶排,注意一下复杂度,不要超。


PS:好久没做题了,太菜了,太菜了。。。。。

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int a[1300032];
int main()
{
int n, i, x, y;
scanf("%d", &n);
memset(a, 0, sizeof(a));
for(i = 1; i <= n; i++)
{
scanf("%d", &x);
a[x]++;
}
int max = 0;
for(i = 1; i <= n; i++)
{
if(a[i] > max)
{
max = a[i];
y = i;
}
}
printf("%d\n%d\n", y, max);
return 0;
}

骨牌铺方格

题目链接:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/3015/pid/1018
思路:手写出前几个,规律就出来了


坑点:long long int,这里会卡你的int范围

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
long long int a[100];
int t, i;
a[1] = 1;
a[2] = 2;
a[3] = 3;
for(i = 4; i <= 51; i++)
{
a[i] = a[i-1] + a[i-2];
}
while(scanf("%d", &t) != EOF)
{
printf("%lld\n", a[t]);
}
return 0;
}
0%
-->