71 条题解
-
-2
#include<bits/stdc++.h> using namespace std; int main() { string a1,b1; int a[10000]={},b[10000]={},c[10000]={}; cin >> a1 >> b1; int lena=a1.size(); int lenb=b1.size(); for(int i=1;i<=lena;i++) { a[i]=a1[lena-i]-'0'; } for(int i=1;i<=lenb;i++) { b[i]=b1[lenb-i]-'0'; } int lenc=1; while(lenc<=lena||lenc<=lenb) { c[lenc]+=a[lenc]+b[lenc]; if(c[lenc]>9) { c[lenc]-=10; c[lenc+1]++; } lenc++; } if(c[lenc]==0) { lenc--; } for(int i=lenc;i>=1;i--) { cout << c[i]; } return 0; } -
-2
权威
#include<iostream> #include<cstring> #include<cstdio> #include<cstring> using namespace std; struct node { int data,rev,sum; node *son[2],*pre; bool judge(); bool isroot(); void pushdown(); void update(); void setson(node *child,int lr); }lct[233]; int top,a,b; node *getnew(int x) { node *now=lct+ ++top; now->data=x; now->pre=now->son[1]=now->son[0]=lct; now->sum=0; now->rev=0; return now; } bool node::judge(){return pre->son[1]==this;} bool node::isroot() { if(pre==lct)return true; return !(pre->son[1]==this||pre->son[0]==this); } void node::pushdown() { if(this==lct||!rev)return; swap(son[0],son[1]); son[0]->rev^=1; son[1]->rev^=1; rev=0; } void node::update(){sum=son[1]->sum+son[0]->sum+data;} void node::setson(node *child,int lr) { this->pushdown(); child->pre=this; son[lr]=child; this->update(); } void rotate(node *now) { node *father=now->pre,*grandfa=father->pre; if(!father->isroot()) grandfa->pushdown(); father->pushdown();now->pushdown(); int lr=now->judge(); father->setson(now->son[lr^1],lr); if(father->isroot()) now->pre=grandfa; else grandfa->setson(now,father->judge()); now->setson(father,lr^1); father->update();now->update(); if(grandfa!=lct) grandfa->update(); } void splay(node *now) { if(now->isroot())return; for(;!now->isroot();rotate(now)) if(!now->pre->isroot()) now->judge()==now->pre->judge()?rotate(now->pre):rotate(now); } node *access(node *now) { node *last=lct; for(;now!=lct;last=now,now=now->pre) { splay(now); now->setson(last,1); } return last; } void changeroot(node *now) { access(now)->rev^=1; splay(now); } void connect(node *x,node *y) { changeroot(x); x->pre=y; access(x); } void cut(node *x,node *y) { changeroot(x); access(y); splay(x); x->pushdown(); x->son[1]=y->pre=lct; x->update(); } int query(node *x,node *y) { changeroot(x); node *now=access(y); return now->sum; } int main() { scanf("%d%d",&a,&b); node *A=getnew(a); node *B=getnew(b); //连边 Link connect(A,B); //断边 Cut cut(A,B); //再连边orz Link again connect(A,B); printf("%d\n",query(A,B)); return 0; } -
-3
#include<bits/stdc++.h> using namespace std; char sa[505],sb[505]; int a[505],b[505],c[505]; int main(){ ios::sync_with_stdio(false); cin.tie(0); cin>>sa>>sb; int la=strlen(sa),lb=strlen(sb); for(int i=0;i<la;i++)a[la-i]=sa[i]-'0'; for(int i=0;i<lb;i++)b[lb-i]=sb[i]-'0'; int lc=max(la,lb); for(int i=1;i<=lc;i++){ c[i]+=a[i]+b[i]; c[i+1]+=c[i]/10; c[i]%=10; } if(c[lc+1]>0)lc++; for(int i=lc;i>=1;i--)cout<<c[i]; return 0; }
-
-3
#include<bits/stdc++.h> using namespace std; char sa[505],sb[505]; int a[505],b[505],c[505]; int main(){ ios::sync_with_stdio(false); cin.tie(0); cin>>sa>>sb; int la=strlen(sa),lb=strlen(sb); for(int i=0;i<la;i++)a[la-i]=sa[i]-'0'; for(int i=0;i<lb;i++)b[lb-i]=sb[i]-'0'; int lc=max(la,lb); for(int i=1;i<=lc;i++){ c[i]+=a[i]+b[i]; c[i+1]+=c[i]/10; c[i]%=10; } if(c[lc+1]>0)lc++; for(int i=lc;i>=1;i--)cout<<c[i]; return 0; }
-
-3
#include <bits/stdc++.h> using namespace std; int n , a , b , c , d; int main() { cin >> n; for ( int i = 1; i <= n; i++ ) { cin >> a >> b >> c >> d; //2 40 2 50 if ( d - b >= 0 ) { cout << c - a << " " << d - b << endl; } else { cout << c - 1 - a << " " << d + 60 - b << endl; } } return 0; } -
-3
#include <bits/stdc++.h> using namespace std; int k,sum; int main() { cin >> k; for ( int i = 10000; i <= 30000; i++ ) { int sub1 = i / 100; int sub2 = i / 10 % 1000; int sub3 = i % 1000; if ( sub1 % k == 0 && sub2 % k == 0 && sub3 % k == 0 ) { sum++; cout << i << endl; } } if ( sum == 0 ) { cout << "No"; } return 0; } -
-3
#include<bits/stdc++.h> using namespace std; #define int long long const int N=1e6+5; int n,num[N],a[N],c[N],sum,ans; signed main(){ cin>>n; setst; for(int i=1;i<=n;i++){ cin>>a[i]; num[a[i]]++; st.insert(a[i]); }sum=st.size(); for(int i=n;i>=1;i--){ if(c[a[i]]&&a[i]!=a[i-1]&&i!=1){ ans+=sum-1; //cout<<i<<endl; }num[a[i]]--; if(!num[a[i]])sum--; if(!c[a[i]])c[a[i]]++; }cout<<ans; return 0; }
-
-3
#include<bits/stdc++.h> using namespace std; const int N=1010;//1表示开头为1,2表示10的2次方 const int INT=0x3f3f3f3f;//INT+INT int范围内最大INT*INT ,long long; int n,m; void dfs(int n,int m){ int sum=0,ans=0; sum=n; ans=m; cout<<ans+1-1+1-1+1-1+sum+1-1+1-1+1-1; } int main( ) { cin>>n>>m; dfs(n,m); }
信息
- ID
- 1
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 5391
- 已通过
- 1528
- 上传者
