hihoCoder挑战赛14

第一次在网上参加这种比赛,也是被虐的很惨了...

前两题竟然都有快200人过真是厉害,第一题都没做出来,第二题完全没有思路...

http://hihocoder.com/contest/challenge14/problems

先看第一题:

想复杂了啊,想了半天想到了桶排,x > 1就把1到1000的位置都加一,最后统计最大的值,然后就错错错...

然后发现没考虑浮点数,浮点数就没有下标这一说法了,然后就贵倒在地上...

 

最后结束后看别人代码才发现根本不用这样,只需要每次枚举0-1000的浮点数然后符合一条就加一,每次枚举的最后取最大的值;

然后考虑到浮点数的话,for循环1到1000就每次不加1,加0.5,虽然至今不懂这是为什么?还有输入整数的时候输了浮点数会是什么样的?

 

刚刚研究了一番终于懂了,输入的c一定是整数,但是x不一定是整数,所以x > 1 和x < 2可以同时成立,所以枚举x的时候每次加0.5就是考虑到这种情况;

而为什么是加0.5不是0.1则是因为:

因为0.5可以被准确的存储,用0.1主要会跪在"="的判断,可以看看浮点数标准

最后贴上别人的比较短的ac代码:

 1 #include <bits/stdc++.h>
 2 #define  RD(x)      scanf("%d", &x)
 3 #define  REP(i, n)  for (int i=0; i<int(n); ++i)
 4 #define  FOR(i, n)  for (int i=1; i<=int(n); ++i);
 5 
 6 using namespace std;
 7 
 8 #define  N   123456
 9 
10 int c[N], kind[N];
11 int n;
12 
13 int Main() {
14 
15     ios_base::sync_with_stdio(0);
16 
17        cin >> n;
18     int mx = 1100, mn = -10;
19 
20     REP(i, n) {
21         string s;
22         cin >> s;
23         cin >> s;
24         cin >> c[i];
25 
26         if (s == "<")
27             kind[i] = 0;
28         else if (s == "<=")
29             kind[i] = 1;
30         else if (s == "=")
31             kind[i] = 2;
32         else if (s == ">")
33             kind[i] = 3;
34         else
35             kind[i] = 4;
36         mx = max(mx, c[i] + 10);
37         mn = min(mn, c[i] - 10);
38     }
39 
40     int ans = 0;
41     for (double x = mn; x <= mx; x += 0.5) {
42         int tmp = 0;
43         REP(i, n) {
44             if (kind[i] == 0 && x < c[i])
45                 tmp++;
46 
47             if (kind[i] == 1 && x <= c[i])
48                 tmp++;
49 
50             if (kind[i] == 2 && x == c[i])
51                 tmp++;
52 
53             if (kind[i] == 3 && x > c[i])
54                 tmp++;
55 
56             if (kind[i] == 4 && x >= c[i])
57                 tmp++;
58         }
59         ans = max(ans, tmp);
60     }
61 
62     cout << ans << endl;
63 
64     return 0;
65 }
66 
67 int main() {
68     return Main();
69 }

自己的写错了就不贴了...

posted @ 2015-08-31 09:01  dominjune  阅读(208)  评论(0编辑  收藏  举报