Codeforces Round #131(Div. 2)
生活随笔
收集整理的這篇文章主要介紹了
Codeforces Round #131(Div. 2)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ?表示水出A和B,C沒看懂,E看懂了以前貌似還見過不會做,CE應該都是DP。。。唉,DP,啊。。。。A題3分鐘,B題卡了錯了4次,很多2B錯誤。。把trick都想清楚了,這個基本屬于亂搞題了。。。43分鐘做出5Y了第二個,還用這個題,查了3個,掛了4個。。。賺了,然后就是圍觀,別的題。。。話說,rating大張啊,變藍了。。。
A題 水。。。
#include <stdio.h> #include <string.h> int main() {int i,j,n,m,z = 0;scanf("%d%d",&n,&m);for(i = 0;i <= 100;i ++)for(j = 0;j <= 100;j ++){if(i*i+j == n&&i+j*j == m)z ++;}printf("%d\n",z);return 0; }B題:題意給你一些數,找出一個最大的被 2 ?3 ?5 都整除。
亂搞方法:分析一下,可以知道一定被30整除,所以最后一個數必須是0.搞一下判斷。從大到小排序,如果整除3,輸出,如果不整除,就有兩種情況,1和2,從低位開始先找到是否有一個數,對3取余和 ?sum%3相等,如果沒找到,再找是否兩個數取余 !=0且!=sum%3,存在 就刪了兩個。最后注意一下前導0(這就是查3次成功數據)。。。
唉,錯了4次,啥也不說了。。。
1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 int cmp(const void *a,const void *b) 5 { 6 return *(int *)b-*(int *)a; 7 } 8 int p[100001],o[100001]; 9 int main() 10 { 11 int i,j,n,m,z = 0,sum = 0,y = 1; 12 scanf("%d",&n); 13 for(i = 0; i <= n-1; i ++) 14 { 15 scanf("%d",&p[i]); 16 if(p[i] == 0) 17 z = 1; 18 sum += p[i]; 19 } 20 qsort(p,n,sizeof(p[0]),cmp); 21 if(!z) 22 printf("-1\n"); 23 else 24 { 25 if(sum % 3 != 0) 26 { 27 for(i = n-1; i >= 0; i --) 28 { 29 if(p[i] % 3 == sum % 3) 30 { 31 o[i] = 1; 32 break; 33 } 34 } 35 j = 0; 36 if(i == -1) 37 { 38 for(i = n-1; i >= 0; i --) 39 { 40 if(p[i]%3 != 0&&p[i] % 3 != sum % 3) 41 { 42 o[i] = 1; 43 j ++; 44 } 45 if(j == 2) 46 break; 47 } 48 if(j < 2) 49 { 50 printf("-1\n"); 51 y = 0; 52 } 53 } 54 } 55 if(y) 56 { 57 z = 0; 58 for(i = 0; i <= n-1; i ++) 59 { 60 if(!o[i]) 61 { 62 if(p[i] != 0) 63 z = 1; 64 if(z) 65 printf("%d",p[i]); 66 } 67 } 68 if(!z) 69 printf("0"); 70 printf("\n"); 71 } 72 } 73 return 0; 74 }轉載于:https://www.cnblogs.com/naix-x/archive/2012/07/31/2616315.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Codeforces Round #131(Div. 2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 同时阅读多个pdf文档怎么办?
- 下一篇: 教你学会Sql中 ROW_NUMBER的