2015-03-15 11:46:09
总结:
.... 最近状态实在是太差了,一直在刷水题 Orz ....
比赛中智商下线... A题 wa数次才过,B题高精度过pretest,后来TLE了.... 最近要多做做比赛恢复一下状态了。
A:手速题.... 打太快导致粗心的错误... (全局变量清空和>=的问题)
1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 #include <cmath> 5 #include <vector> 6 #include <map> 7 #include <set> 8 #include <stack> 9 #include <queue> 10 #include <string> 11 #include <iostream> 12 #include <algorithm> 13 using namespace std; 14 15 #define MEM(a,b) memset(a,b,sizeof(a)) 16 #define REP(i,n) for(int i=1;i<=(n);++i) 17 #define REV(i,n) for(int i=(n);i>=1;--i) 18 #define FOR(i,a,b) for(int i=(a);i<=(b);++i) 19 #define RFOR(i,a,b) for(int i=(a);i>=(b);--i) 20 #define getmid(l,r) ((l) + ((r) - (l)) / 2) 21 #define MP(a,b) make_pair(a,b) 22 23 typedef long long ll; 24 typedef pair<int,int> pii; 25 const int INF = (1 << 30) - 1; 26 27 int tlen,n,B; 28 char ts[300]; 29 int s[300],ans[300]; 30 31 inline int Trans(char cur){ 32 if(cur >= '0' && cur <= '9') return cur - '0'; 33 return cur - 'a' + 10; 34 } 35 36 int main(){ 37 while(scanf("%d%d",&n,&B) != EOF){ 38 int max_len = 0; 39 MEM(ans,0); 40 REP(i,n){ 41 scanf("%s",ts); 42 tlen = strlen(ts); 43 max_len = max(max_len,tlen); 44 for(int j = 0; j < tlen; ++j) s[tlen - 1 - j] = Trans(ts[j]); 45 if(i == 1) for(int j = 0; j < tlen; ++j) ans[j] = s[j]; 46 else for(int j = 0; j < tlen; ++j) ans[j] = (ans[j] + s[j]) % B; 47 } 48 int i; 49 for(i = max_len - 1; i >= 0; --i) if(ans[i] != 0) break; 50 if(i < 0) printf("0"); 51 for(; i >= 0; --i){ 52 if(ans[i] >= 10) printf("%c",'a' + ans[i] - 10); 53 else printf("%d",ans[i]); 54 } 55 puts(""); 56 } 57 return 0; 58 }