The 2018 ACM-ICPC Asia Qingdao Regional Contest
生活随笔
收集整理的這篇文章主要介紹了
The 2018 ACM-ICPC Asia Qingdao Regional Contest
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
The 2018 ACM-ICPC Asia Qingdao Regional Contest
青島總體來說只會3題
C
#include<bits/stdc++.h> using namespace std; #define maxn 3000005 char a[maxn],b[maxn]; int c[maxn],ll[maxn],rr[maxn]; int main(){int t;cin>>t;while(t--){int n;scanf("%d",&n);scanf("%s",a);scanf("%s",b);for(int j=0;j<n;j++){if(a[j]!=b[j]){c[j]=1;}else c[j]=0;}int i=0;bool fa=0;for(int j=0;j<strlen(a);j++){//if(fa&&c[j]==1) continue;if(fa==1&&c[j]==0){rr[i-1]=j;fa=0;}else if(fa==0&&c[j]==1){ll[i]=j;i++;fa=1;}}if(c[n-1]==1) rr[i-1]=n-1;if(i==0){printf("%lld\n",1LL*n*(n+1)/2);}else if(i==1){int k=rr[i-1]-ll[i-1]+1;long long ans=1LL*(k-1)*2+1LL*(n-k)*2;printf("%lld\n",ans);}else if(i==2){printf("6\n");}else{printf("0\n");}}return 0; }E
#include<bits/stdc++.h> using namespace std; #define maxn 200005 #define LL long long LL a[maxn],b[maxn]; LL n,m; bool fa(LL x){LL ans=0;for(int j=0;j<n;j++){if(x%a[j]==0){b[j]=x/a[j];}else{b[j]=x/a[j]+1;}}for(int j=0;j<n;j++){if(j==n-1&&b[j]<1) break;ans++;if(b[j]>1){ans+=(b[j]-1)*2;b[j+1]-=b[j]-1;}if(ans>m) return 0;}return 1; } int main(){int t;cin>>t;while(t--){scanf("%lld%lld",&n,&m);LL mx=0;for(int j=0;j<n;j++){scanf("%lld",&a[j]);mx=max(mx,a[j]);}LL l=0,r=mx*m;if(m==0) cout<<"0"<<endl;else{while(l<r){LL mid=(r+l)/2;if(fa(mid)) l=mid+1;else r=mid;} printf("%lld\n",max(1LL*0,l-1));}}return 0; }J
#include<bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 100010; int Min( int a , int b ){ return a<b?a:b; } int n,m,a[maxn]; int main() {int T; scanf( "%d" , &T );for( int cas=1 ; cas<=T ; cas++ ){int cnt = 0,num = 0;scanf ( "%d%d" , &n , &m );for( int i=1 ; i<=n ; i++ ){int x; scanf( "%d" , &x );if ( x==0 ) cnt++;else a[++num] = x;}if ( m==n ) printf( "Richman\n" );else if ( m<cnt ) printf( "Impossible\n" );else{LL ans = 0; int tmp = 2000000000;for( int i=1 ; i<=num ; i++ ){if ( i<=m-cnt ) ans += a[i];else tmp = Min( tmp , a[i] );}printf( "%lld\n" , ans+tmp-1 );}}return 0; }?
M
#include<bits/stdc++.h> using namespace std; #define LL long long int fa[12]={1,0,0,0,1,0,1,0,2,1}; int main(){int t;cin>>t;while(t--){int n,z;scanf("%d%d",&n,&z);//cout<<"2"<<endl;while(1){if(n==1||n==0) break;if(z<=0) break;int i=0;int k=n;while(k>0){LL ii=k%10;i+=fa[ii];k/=10;}n=i;z--;}if(z==0){printf("%d\n",n);}else{if(z%2==0){printf("%d\n",n);}else{printf("%d\n",fa[n]);}}} }?
轉載于:https://www.cnblogs.com/DyLoder/p/9941973.html
總結
以上是生活随笔為你收集整理的The 2018 ACM-ICPC Asia Qingdao Regional Contest的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDOJ_2010_大二写_水仙花数
- 下一篇: 算法设计与分析课程的时间空间复杂度