首页 > 代码库 > 2014年牡丹江现场赛打铁记
2014年牡丹江现场赛打铁记
10月10号的下午1点半灰机,坑爹的还晚点到了2点半了,然后苦逼的到哈尔滨都晚上8点半了,非直达的灰机伤不起啊T_T。然后找到宾馆再走到大街上就发现为什么这么冷清,明明才9点,夜生活都还没开始人都不见了是要闹哪样??最口苦逼的吃了一顿麦当劳你敢信?
11号一早起来赶火车去牡丹江,发现沿途的风景真心不错~
到牡师院的时候练习赛已经开始了,我们三弱菜开玩笑说让他们半小时-_-|||,水了两发题目之后就各种无聊,中间貌似pc^2挂了还是怎么滴,各种没反应。
吃完晚饭之后,志愿者还带我们去市中心浪了一会,我们真的是来比赛而不是来旅游的吗→_→
12号吃了一顿超级便宜的早餐之后来到赛场磨蹭了一会之后比赛就开始了。一下就是打铁记录...
A题, Average Score
有一个叫Bob的家伙从A班转到B班的话两个班的平均成绩都会提高,求Bob可能的最低和最高的成绩
可以推出公式
1 #include <stdio.h>
2 #include <math.h>
3
4 int main(){
5 int t, n, m, i;
6 int minx, maxx;
7 double a, b, sumN, sumM;
8 scanf("%d", &t);
9 while(t--){
10 scanf("%d %d", &n, &m);
11 sumN = sumM = 0;
12 for(i = 0; i < n - 1; i++){
13 scanf("%lf", &a);
14 sumN += a;
15 }
16 maxx = floor(sumN * n / (n - 1) - sumN - 1e-9);//注意不是小于等于号
17 for(i = 0; i < m; i++){
18 scanf("%lf", &b);
19 sumM += b;
20 }
21 minx = ceil(sumM * (m + 1) / m - sumM + 1e-9);
22 printf("%d %d\n", minx, maxx);
23 }
24 return 0;
2 #include <math.h>
3
4 int main(){
5 int t, n, m, i;
6 int minx, maxx;
7 double a, b, sumN, sumM;
8 scanf("%d", &t);
9 while(t--){
10 scanf("%d %d", &n, &m);
11 sumN = sumM = 0;
12 for(i = 0; i < n - 1; i++){
13 scanf("%lf", &a);
14 sumN += a;
15 }
16 maxx = floor(sumN * n / (n - 1) - sumN - 1e-9);//注意不是小于等于号
17 for(i = 0; i < m; i++){
18 scanf("%lf", &b);
19 sumM += b;
20 }
21 minx = ceil(sumM * (m + 1) / m - sumM + 1e-9);
22 printf("%d %d\n", minx, maxx);
23 }
24 return 0;
25 }
I题。Information Entropy
根据题目给的公式直接搞,注意p为0即可,不知道为什么交ZOJ上C会WA,C++缺A了。
1 #include <stdio.h>
2 #include <math.h>
3
4 int main(){
5 int t, n, i;
6 double ans, p;
7 char str[10];
8 scanf("%d", &t);
9 while(t--){
10 scanf("%d %s", &n, str);
11 ans = 0;
12 if(str[0] == ‘b‘){
13 for(i = 0; i < n; i++){
14 scanf("%lf", &p);
15 p /= 100;
16 if(fabs(p - 0) > 1e-9){
17 ans += p * log2(p);
18 }
19 }
20 printf("%.10lf\n", -ans);
21 }
22 else if(str[0] == ‘n‘){
23 for(i = 0; i < n; i++){
24 scanf("%lf", &p);
25 p /= 100;
26 if(fabs(p - 0) > 1e-9){
27 ans += p * log(p);
28 }
29 }
30 printf("%.10lf\n", -ans);
31 }
32 else if(str[0] == ‘d‘){
33 for(i = 0; i < n; i++){
34 scanf("%lf", &p);
35 p /= 100;
36 if(fabs(p - 0) > 1e-9){
37 ans += p * log10(p);
38 }
39 }
40 printf("%.10lf\n", -ans);
41 }
42 }
43 return 0;
2 #include <math.h>
3
4 int main(){
5 int t, n, i;
6 double ans, p;
7 char str[10];
8 scanf("%d", &t);
9 while(t--){
10 scanf("%d %s", &n, str);
11 ans = 0;
12 if(str[0] == ‘b‘){
13 for(i = 0; i < n; i++){
14 scanf("%lf", &p);
15 p /= 100;
16 if(fabs(p - 0) > 1e-9){
17 ans += p * log2(p);
18 }
19 }
20 printf("%.10lf\n", -ans);
21 }
22 else if(str[0] == ‘n‘){
23 for(i = 0; i < n; i++){
24 scanf("%lf", &p);
25 p /= 100;
26 if(fabs(p - 0) > 1e-9){
27 ans += p * log(p);
28 }
29 }
30 printf("%.10lf\n", -ans);
31 }
32 else if(str[0] == ‘d‘){
33 for(i = 0; i < n; i++){
34 scanf("%lf", &p);
35 p /= 100;
36 if(fabs(p - 0) > 1e-9){
37 ans += p * log10(p);
38 }
39 }
40 printf("%.10lf\n", -ans);
41 }
42 }
43 return 0;
44 }
这两题水的不能再水的水题都能搞,然后我们就犯了非常SB的错误,卡题了,就是D题。。。蠢比的以为是概率论,然后一一直在那边SB的推公式啊推公式,完全没有往其他方面考虑,重点是三个人都在纠结这道题目-_-|||,然后就么有然后了。惨!
╮(╯▽╰)╭,都是泪啊T_T
2014年牡丹江现场赛打铁记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。