考試時間 14:00 至 17:30node
指望得分:40+60+60ios
實際得分:100+60+30ide
T1:題面以下(☄⊙ω⊙)☄ui
思路:最早想到的固然是暴力枚舉spa
然鵝,我個傻缺居然開始從1枚舉到N。。(不T纔怪~)code
而後開始從N向小的枚舉blog
可是儘管如此依舊沒法拿到60分。。(學校機子慢的一批)ip
thenci
看到就想到須要字符讀入,那麼能不能直接對每一個字符進行處理get
而後就這樣啦
處理一下awa
注意若是N符合各個數位是單調不減的就直接把N輸出
還要注意先前導零的情況(awa——> @lzpclxf
還有看好數據範圍很是重要的。。。
awa
如今!上代碼
1 //40 2 #include<cstdio> 3 #include<algorithm> 4 #include<cstring> 5 #include<iostream> 6 using namespace std; 7 char a[100005]; 8 int len; 9 int k; 10 void awa(int k) { 11 for(int i=1; i<k; i++) 12 cout<<a[i]; 13 if(a[k]-'0'-1!=0)cout<<a[k]-'0'-1; 14 for(int i=k+1; i<=len; i++)cout<<9; 15 } 16 int main() { 17 freopen("increase.in","r",stdin); 18 freopen("increase.out","w",stdout); 19 cin>>a+1; 20 len=strlen(a+1); 21 k=len; 22 for(int i=1; i<len; i++) { 23 if(a[i]==a[i+1]) { 24 if(a[k]==a[i])k=min(k,i); 25 else k=i; 26 if(a[i+1]>a[i+2]&&(i+2)<=len) { 27 awa(k); 28 fclose stdin; 29 fclose stdout; 30 return 0; 31 } 32 } 33 if(a[i]>a[i+1]) { 34 awa(i); 35 fclose stdin; 36 fclose stdout; 37 return 0; 38 } 39 } 40 cout<<a+1; 41 return 0; 42 }
T2: ↓ 題面以下 ↓
思路:直接暴力模擬,,,就有了60????
代碼:
#include<cstdio> #include<algorithm> #include<iostream> #include<cstring> const long long mod=1e12+7; using namespace std; int N,a[1001]; long long ans; bool flag=false; long long f[1001][1001]; inline int read() { int s=0,w=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-')w=-1; ch=getchar(); } while(ch>='0'&&ch<='9') s=(s<<3)+(s<<1)+(ch^48),ch=getchar(); return s*w; } void print(long long k) { int num = 0; int ch[19]; while(k>0) ch[++num]=k%10,k/=10; while(num) putchar(ch[num--]+48); putchar(32); } void awa() { for(int i=1; i<=N; i++) for(int j=i+1; j<=N; j++) if(a[j]<a[i])f[i][j]=a[j]*1ll*a[i]%mod; for(int i=1; i<=N; i++) { if(a[i]>=a[i-1]) { flag=true; return ; } } } int main() { freopen("multiplication.in","r",stdin); freopen("multiplication.out","w",stdout); N=read(); if(N>2000)return 0;//看我對評測機多好~ for(int i=1; i<=N; i++)a[i]=read(); awa(); if(!flag) { cout<<0; fclose stdin; fclose stdout; return 0; } for(int l=1; l<=N; l++) for(int r=l; r<=N; r++) for(int i=l; i<=r; i++) for(int j=i+1; j<=r; j++) ans+=f[i][j],ans%=mod; if(ans==0)cout<<0; else print(ans); fclose stdin; fclose stdout; return 0; }
awa我愛暴力但不會 不愛爆零卻老爆
T3:題面以下(☄⊙ω⊙)☄
思路:天然是直接暴力求可是爲什麼會卡掉幾個點
awa,是我太菜了
菜雞的代碼↓
#include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int inf=1e9+7; struct node { int x1,y1,x2,y2; } f[50005]; int T,N; bool flag; int xx1,yy1,xx2,yy2; inline int read(); void awa() { bool col[405][405]; memset(col,false,sizeof col); for(int i=1; i<=N; i++) for(int x=f[i].x1+200; x<f[i].x2+200; x++) for(int y=f[i].y1+200; y<f[i].y2+200; y++) { if(col[x][y]) { cout<<"Guguwansui"<<"\n"; return; } col[x][y]=true; } for(int i=xx1+200; i<xx2+200; i++) for(int j=yy1+200; j<yy2+200; j++) if(!col[i][j]) { cout<<"Guguwansui"<<"\n"; return; } cout<<"Perfect"<<"\n"; return; } bool check(int a,int b) { if(f[a].x1<f[b].x1&&f[a].y1<f[b].y1&&f[a].y2>f[b].y1&&f[a].x2>f[b].x1) return false; if(f[a].x1<f[b].x1&&f[a].x2>f[b].x1&&f[a].y1<f[b].y2&&f[a].y1>f[b].y1)return false; return true; } void qwq() { for(int i=1; i<N; i++) for(int j=i+1; j<=N; j++) if(!check(i,j)||!check(j,i)) { cout<<"Guguwansui"<<'\n'; return; } cout<<"Perfect"<<"\n"; return; } int main() { freopen("matrix.in","r",stdin); freopen("matrix.out","w",stdout); T=read(); while(T--) { xx1=inf,xx2=-inf,yy1=inf,yy2=-inf; flag=true; N=read(); for(int i=1; i<=N; i++) { f[i].x1=read(),f[i].y1=read(),f[i].x2=read(),f[i].y2=read(); if(abs(f[i].x1)>200||abs(f[i].x2)>200||abs(f[i].y1)>200||abs(f[i].y2)>200) flag=false; xx1=min(xx1,f[i].x1),xx2=max(xx2,f[i].x2),yy1=min(yy1,f[i].y1),yy2=max(yy2,f[i].y2); } if(flag) { awa(); continue; } qwq(); } fclose stdin; fclose stdout; return 0; } inline int read() { int s=0,w=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-')w=-1; ch=getchar(); } while(ch>='0'&&ch<='9') s=(s<<3)+(s<<1)+(ch^48),ch=getchar(); return s*w; }
要到了大佬的代碼
%%%%%%%%%%%%%
wxyww tql Orz Sto