感觉最近水题都不会做了,卡题卡的好厉害,昨天撸了。。。快三个小时,敲了四道题,过了三道题。。。。。
第一题,,,刚开始感觉挺好写的,后来老是wa。再后来。。。发现是题目看漏了。感觉最近做题的时候老是很急躁,题目都没看完看懂就上去敲。很不好。
第,,,G题,应该是算字符串处理的问题吧,刚开始想的是如果知道电脑这方面是怎么处理超范围这样的事情就可以不用字符串来做了,然后我居然这样写了。。。。比赛的时候居然可以重写了两次。。。。。也是醉了。以后题目一定要想清楚怎么做,才可以上手!!!
第,,I题,是求积分的,原先做过类似的分数处理,但是因为忘了用long long也wa了好多次。。。。
然后D题Tle了,好吧,原先那样暴力我也不求可以过了。。。待我优化之后再来一发。
之后苏苏那一题。。。。是我题目又看走样了吗?。。。。为什么。。。。哭
按顺序贴个代码吧,,,继续躲在墙角哭。。。。
#include <stdio.h> char cmp[6][100]={"32767","32768","2147483647","2147483648","9223372036854775807","9223372036854775808"}; int main() { char s[100]; while(scanf("%s",s)!=EOF) { int i,j,k; char ss[100]; int flag=0,top=0,num=0; int tmp=0; // printf("---%s\n",s); for(i=0;s[i]!='\0';i++) { if(s[i]=='-') {flag=1;continue;} ss[top++]=s[i]; num++; } ss[top++]='\0'; // printf("--%s\n",ss); if(num<5) {printf("short\n");continue;} else if(num==5) { i=0; while((ss[i]==cmp[flag][i])&&i<5) { // printf("%c %c\n",ss[i],cmp[flag][i]); i++; // printf("**%d\n",i); } // printf("**%d\n",i); if(i!=5) { // printf("%d %d\n",cmp[flag][i]-'0',ss[i]-'0'); if(cmp[flag][i]-'0'<ss[i]-'0') tmp=1; else tmp=0; if(tmp) printf("int\n"); else printf("short\n"); } else printf("short\n"); continue; } else if(num<10) {printf("int\n");continue;} else if(num==10) { i=0; while(ss[i]==cmp[flag+2][i]&&i<10) { i++; } // printf("**%d\n",i); if(i!=10) { if(cmp[flag+2][i]-'0'<ss[i]-'0') tmp=1; else tmp=0; if(tmp) printf("long long\n"); else printf("int\n"); } else printf("int\n"); continue; } else if(num<19) {printf("long long\n");continue;} else if(num==19) { // printf("----\n"); i=0; while(ss[i]==cmp[flag+4][i]&&i<19) { // printf("%c %c\n",ss[i],cmp[flag+4][i]); i++; } // printf("**%d\n",i); if(i!=19) { if(cmp[flag+4][i]-'0'<ss[i]-'0') tmp=1; else tmp=0; if(tmp) printf("It is too big!\n"); else printf("long long\n"); } else printf("long long\n"); continue; } else {printf("It is too big!\n");continue;} } } /* 32767 32768 -32768 -32769 2147483647 2147483648 -2147483647 -2147483649 -2147483648 9223372036854775807 9223372036854775808 9223372036854790000 -9223372036854775807 -9223372036854775809 -9223372036854775900 */
#include <stdio.h> #include <string.h> #define maxn 1010 int gcd(int a, int b) { int c = a%b; while(c){ a = b; b = c; c = a % b; } return b; } int max(int x,int y) { if(x>y) return x; else return y; } int xishu[maxn],fenzi[maxn],fenmu[maxn]; int main() { int n; while(scanf("%d",&n)!=EOF) { int i,j,k; int big=0; memset(fenmu,0,sizeof(fenmu)); memset(xishu,0,sizeof(xishu)); memset(fenzi,0,sizeof(fenzi)); for(i=0;i<n;i++) { scanf("%d%d",&j,&k); xishu[k]=j; big=max(big,k); } for(i=0;i<=big;i++) { i++; printf("888\n"); if(xishu[i]&&i) {printf("---\n"); if(xishu[i]%i) { fenzi[i]=xishu[i]; fenmu[i]=i; printf("her?\n"); int tmp=gcd(fenzi[i],fenmu[i]); printf("ok>??\n"); fenzi[i]/=tmp; fenmu[i]/=tmp; } else xishu[i]=xishu[i]/i; } } for(i=0;i<=big;i++) { if(xishu[i]) { if(fenmu[i]) printf("%d/%d %d ",fenzi[i],fenmu[i],++i); else printf("%d %d ",xishu[i],++i); } } printf("\n"); } return 0; }
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> #define maxn 1010 #define ll long long struct node { ll mi; ll xishu; ll fenmu; }que[maxn]; ll gcd(ll a, ll b) { ll c = a%b; while(c){ a = b; b = c; c = a % b; } return b; } void init() { int i; for(i=0;i<maxn;i++) { que[i].fenmu=0; que[i].mi=0; que[i].xishu=0; } } int main() { int n; while(scanf("%d",&n)!=EOF&&n) { ll i,j,k; init(); // memset(que.fenmu,0,sizeof(que.fenmu)); for(i=0;i<n;i++) { scanf("%lld%lld",&j,&k); que[i].xishu=j; que[i].mi=++k; if(j%k) { ll tmp=gcd(abs(j),abs(k)); que[i].xishu=j/tmp; que[i].fenmu=k/tmp; } else que[i].xishu=j/k; } for(i=0;i<n-1;i++) { if(que[i].fenmu) { // if(que[i].xishu*que[i].fenmu>0) printf("%lld/%lld %lld ",que[i].xishu,que[i].fenmu,que[i].mi); // else printf("-%d/%d %d ",abs(que[i].xishu),abs(que[i].fenmu),que[i].mi); } else printf("%lld %lld ",que[i].xishu,que[i].mi); } if(que[i].fenmu) printf("%lld/%lld %lld",que[i].xishu,que[i].fenmu,que[i].mi); else printf("%lld %lld",que[i].xishu,que[i].mi); printf("\n"); } return 0; }