社区讨论

求人如救火 80分 九、十两个点RE

P1080[NOIP 2012 提高组] 国王游戏参与者 4已保存回复 13

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
13 条
当前快照
1 份
快照标识符
@mi6tpw0k
此快照首次捕获于
2025/11/20 10:40
4 个月前
此快照最后确认于
2025/11/20 13:51
4 个月前
查看原帖
#include<bits/stdc++.h> #define FOR(i,x,y) for(int i=(x);i<=(y);i++) #define DOR(i,x,y) for(int i=(x);i>=(y);i--) using namespace std; struct node{ int a,b,c; }; node f[1005]; char sum[1005][10005]; char ans[10005]={"0"}; char t[10005]; bool cmp(node a,node b){ return a.c<b.c; } string gjchen(char a[],int b){ int a1[10005],x=0,c[10005],l=strlen(a); FOR(i,1,l){ a1[i]=a[l-i]-48; } FOR(i,1,l){ c[i]=a1[i]b+x; x=c[i]/10; c[i]%=10; } while(x>0) { c[++l]=x%10; x/=10; } string s=""; DOR(i,l,1){ string t="a"; t[0]=c[i]+48; s=s+t; } return s; } string gjchu(char a[],int b){ int l=strlen(a),x=0,a1[10005],c[10005]; FOR(i,1,l){ a1[i]=a[i-1]-48; } FOR(i,1,l){ c[i]=(x10+a1[i])/b; x=(x10+a1[i])%b; } int lc=1; while(lc<l&&c[lc]==0) lc++; string s=""; for(int i=lc;i<=l;i++){ string t="a"; t[0]=c[i]+48; s=s+t; } return s; } bool bijiao(char a[],char b[]){ int l1=strlen(a),l2=strlen(b); if(l1<l2)return true; else if(l1>l2) return false; else if(strcmp(a,b)<0) return true; else return false; } int main(){ int n; scanf("%d",&n); scanf("%d%d",&f[0].a,&f[0].b); FOR(i,1,n){ scanf("%d%d",&f[i].a,&f[i].b); f[i].c=f[i].af[i].b; } sort(f+1,f+1+n,cmp); sprintf(sum[0],"%d",f[0].a); FOR(i,1,n-1){ strcpy(sum[i],gjchen(sum[i-1],f[i].a).c_str()); } FOR(i,1,n){ strcpy(t,gjchu(sum[i-1],f[i].b).c_str()); if(bijiao(ans,t)) strcpy(ans,gjchu(sum[i-1],f[i].b).c_str()); } printf("%s",ans); return 0; }

回复

13 条回复,欢迎继续交流。

正在加载回复...