#includeintmain(){inta,b,x,y;doublez;scanf("%d%d%d%d",&x,&a,&y,&b);z=(a*x-b*y)/(a-b);printf("%.2f",z);return0;}点击查看AC代码第二章顺序结构程序设计
第一节运算符和表达式
#include#includeusingnamespacestd;intmain(){doublea,b;cin>>a>>b;cout<#includeusingnamespacestd;#include//intmain(){floatr1,r2;cin>>r1>>r2;cout<#includeusingnamespacestd;intmain(){cout<#includeusingnamespacestd;intmain(){intflag=0,m=3;charch;cin>>ch;for(inti=1;i<=2*m-1;i++){inttmpi=i>m2*m-i:i;for(intj=1;j#includeusingnamespacestd;intmain(){intn,x,y,m;cin>>n>>x>>y;m=n-1.0*y/x;if(m<0)m=0;cout<第一节if选择结构
#includeusingnamespacestd;intmain(){longlongn;cin>>n;if(n%3==0&&n%5==0)cout<<"YES";elsecout<<"NO";return0;}点击查看AC代码第二节switch语句
#include#include#includeusingnamespacestd;intmain(){doublea,b,c;cin>>a>>b>>c;doubledet;det=b*b-4*a*c;if(det<-1e-12){cout<<"Noanswer!";}else{if(fabs(det)<1e-12){cout<<"x1=x2="<第一节for语句
#includeusingnamespacestd;intmain(){intn,k,ans=0;cin>>n>>k;if(n%19)cout<<"NO";else{while(n){if(n%10==3)ans++;n/=10;}if(ans==k)cout<<"YES";elsecout<<"NO";}return0;}点击查看AC代码第三节do-while语句
//1090:含k个3的数#includeusingnamespacestd;intmain(){intn,k;cin>>n>>k;do{if(n%10==3)k--;n/=10;}while(n);if(k)cout<<"NO";elsecout<<"YES";return0;}点击查看AC代码第四节循环嵌套
#includeusingnamespacestd;intmain(){inta,b,c,ans=0;cin>>a>>b>>c;for(inti=0;i<=c/a;i++)if((c-a*i)%b==0)ans++;cout<第一节一维数组
#includeusingnamespacestd;inta[10000][4];intmain(){intn,x,y,ans=0;cin>>n;for(inti=1;i<=n;i++)cin>>a[i][0]>>a[i][1]>>a[i][2]>>a[i][3];cin>>x>>y;for(inti=n;i>=1;i--){if(a[i][0]<=x&&x<=a[i][0]+a[i][2]&&a[i][1]<=y&&y<=a[i][1]+a[i][3]){cout<#includeusingnamespacestd;inta[101][101],b[101][101];intmain(){intn,m;cin>>n>>m;for(inti=1;i<=n;i++)for(intj=1;j<=m;j++)cin>>a[i][j];for(inti=1;i<=n;i++)for(intj=1;j<=m;j++){if(i==1||i==n||j==1||j==m)b[i][j]=a[i][j];elseb[i][j]=((a[i][j]+a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1])/5.0+0.5);}for(inti=1;i<=n;i++){for(intj=1;j#include#include#include#includeusingnamespacestd;intmain(){strings,max;intmaxn=0,f=0,l;getline(cin,s,'.');for(inti=0;i<=s.size();i++)if(s[i]==32||s[i]==0){l=i-f;if(l>maxn){maxn=l;max=s.substr(f,l);}f=i+1;}cout<第一节函数
#include#includeusingnamespacestd;intzh(intn,intm){intk=0,an=0;while(n){an+=pow(m,k)*(n%10);n/=10;k++;}returnan;}intmxb(intn){intmx=0;while(n){if(n%10>mx)mx=n%10;n/=10;}returnmx;}intmain(){intp,q,r;cin>>p>>q>>r;for(inti=max(max(mxb(p),mxb(q)),mxb(r))+1;i<=40;i++){//cout<#include#includeusingnamespacestd;doublef(intn,doublex){if(n==1)returnx/(1+x);returnx/(n+f(n-1,x));}intmain(){intn;doublex;cin>>x>>n;cout<第一章高精度计算
#include#include#includeusingnamespacestd;inta[101],b[101];intmain(){strings;cin>>s;intln,res=0,sn=0,t;ln=s.size();for(inti=ln-1;i>=0;i--)a[i]=s[i]-'0';for(inti=0;i#includeusingnamespacestd;inta[26];intmain(){strings;intch,n,max,maxn=0;cin>>s;n=s.size();for(inti=0;imaxn||a[ch]==maxn&&ch#include#includeusingnamespacestd;intdp[501][501],a[501],mi[501][501];intm,n;intmain(){inti,j,x,k;cin>>m>>n;a[1]=0;for(i=2;i<=m;i++){cin>>x;a[i]=a[i-1]+x;}for(i=0;i<=m;i++)mi[i][i]=0;for(i=1;i<=m;i++)for(j=i+1;j<=m;j++)mi[i][j]=mi[i][j-1]+a[j]-a[(i+j)/2];for(i=1;i<=m;i++)for(j=1;j<=n;j++)dp[i][j]=250000;for(i=1;i<=m;i++)dp[i][1]=mi[1][i];for(i=2;i<=m;i++)for(j=2;j<=n;j++)for(k=j-1;k#includeinta[100001],a2[100001],a3[100001],t,t2=1,t3=1,h2=1,h3=1;intmain(){intn,x,tx2,tx3;scanf("%d,%d",&n,&x);a[0]=1,a2[0]=1,a3[0]=1;while(a[t]a3[h3])a[t]=a3[h3++];else{a[t]=a2[h2++];h3++;}}if(a[t]==x)printf("YES");elseprintf("NO");return0;}点击查看AC代码第五章搜索与回溯算法
#includeusingnamespacestd;inta[100][100],b[100][2];longlongfp1(intn,intm){if(a[n][m])returna[n][m];if(m==1||n==1||n==0)a[n][m]=1;elseif(n=m)a[n][m]=fp1(n,m-1)+fp1(n-m,m);returna[n][m];}intmain(){intn;cin>>n;for(inti=1;i<=n;i++)cin>>b[i][0]>>b[i][1];for(inti=1;i<=n;i++)cout<//1233:接水问题#includeusingnamespacestd;intans,n,m,a[1000001];longlongb[1000001];intmain(){cin>>n>>m;for(inti=1;i<=n;i++)cin>>a[i];for(inti=1;i<=m;i++)if(i<=n)b[i]=a[i];elseb[i]=0;for(inti=m+1;i<=n;i++){intk=1,minx=b[1];for(intj=2;j<=m;j++)if(b[j]//1247:河中跳房子#includeusingnamespacestd;intconstN=5e4+2;ints[N],a[N],l,n,m;boolts(intx){intjl=0,cnt=0;for(inti=1;i<=n;i++)if(l-s[i]>l>>n>>m;for(inti=1;i<=n;i++){cin>>s[i];a[i]=s[i]-s[i-1];}intlow=1,high=l;while(low+1#include#includeusingnamespacestd;intconstmx=304;intdx[8]={2,2,1,1,-1,-1,-2,-2};intdy[8]={-1,1,-2,2,-2,2,-1,1};intmap[mx][mx],que[mx*mx][2],dp[mx][mx],ans[mx],ha,la,hb,lb;intbfs(){inth=0,t=0,cx,cy,tx,ty;que[0][0]=ha,que[0][1]=la;while(h<=t){cx=que[h][0],cy=que[h++][1];for(inti=0;i<8;i++){tx=cx+dx[i];ty=cy+dy[i];if(tx==hb&&ty==lb){returndp[cx][cy]+1;}if(map[tx][ty]){que[++t][0]=tx;que[t][1]=ty;dp[tx][ty]=dp[cx][cy]+1;map[tx][ty]=0;}}}return0;}intmain(){//std::ios::sync_with_stdio(false);intt,n;charch;cin>>t;for(intk=1;k<=t;k++){cin>>n>>ha>>la>>hb>>lb;ha+=2,la+=2,hb+=2,lb+=2;memset(map,0,sizeof(map));memset(dp,0,sizeof(dp));for(inti=2;i<=n+1;i++)for(intj=2;j<=n+1;j++)map[i][j]=1;if(ha==hb&&la==lb)ans[k]=0;elseans[k]=bfs();}for(intk=1;k<=t;k++)cout<第一节动态规划的基本模型
//1289:拦截导弹#includeusingnamespacestd;intn,a[20],f[20],ans;intmain(){cin>>n;for(inti=1;i<=n;i++)cin>>a[i];f[1]=1;for(inti=2;i<=n;i++){f[i]=1;for(intj=1;j//1296:开餐馆#include#include#includeusingnamespacestd;inta[100],b[101],f[101],ans;intt,n,k,m;intmain(){cin>>t;for(intl=1;l<=t;l++){memset(a,0,sizeof(a));memset(f,0,sizeof(f));ans=0;cin>>n>>k;for(inti=1;i<=n;i++)cin>>a[i];for(inti=1;i<=n;i++)cin>>b[i];for(inti=1;i<=n;i++){f[i]=b[i];for(intj=1;jk)f[i]=max(f[i],f[j]+b[i]);if(ans#include#include#include#defineINF1e9usingnamespacestd;structnod{intval;vectorv;}f[505];inta[505],b[505];intmain(){intn,m,i,j;scanf("%d",&m);for(i=1;i<=m;i++)scanf("%d",&a[i]);scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&b[i]);for(i=1;i<=n;i++){nodk;k.val=0;for(j=1;j<=m;j++){if(b[i]>a[j]&&k.valMax.val)Max=f[i];printf("%d\n",Max.val);for(inti=0;i第一章栈
第三章树
第一节二叉树
//1368:对称二叉树(tree_c)#include#includeusingnamespacestd;strings;intn,ans;intmain(){cin>>s;n=s.size();ans=(n+1)%2;for(inti=1;i第一节图的遍历
#includeusingnamespacestd;intn;intmaxn;intbeginn=10000;intmapp[1000][1000];intpath[1000];intd[1000];intstart=0;intcnt=0;voiddfs(inti){for(intj=beginn;j<=maxn;j++){if(mapp[i][j]){mapp[i][j]--;mapp[j][i]--;dfs(j);}}path[++cnt]=i;}intmain(){ios::sync_with_stdio(false);cin>>n;for(inti=0;i>x>>y;mapp[x][y]++;//说明x和y有连边,这里++是因为俩个点之间可以不止一个栅栏mapp[y][x]++;d[x]++;//统计每点的度d[y]++;beginn=min(min(x,y),beginn);//这个是找到最小的点maxn=max(max(x,y),maxn);//这个是找点}for(inti=beginn;i<=maxn;i++){//注意这是从点的的度来找的,找奇点if(d[i]%2){start=i;break;}}if(start==0)start=beginn;//如果没有找到奇点那么就从最小的点开始遍历dfs(start);for(inti=cnt;i>=1;i--){cout<//1421:Floyd#includeusingnamespacestd;constintN=501;constlonglonginf=1e16;intn,m;longlongdis[N][N],s;intmain(){ios::sync_with_stdio(0);longlonga,b,c;cin>>n>>m;for(inti=1;i<=n;i++)for(intj=1;j<=n;j++)if(i==j)dis[i][j]=0;elsedis[i][j]=inf;for(inti=1;i<=m;i++){cin>>a>>b>>c;if(dis[a][b]>c)dis[a][b]=c;}for(intk=1;k<=n;k++)for(inti=1;i<=n;i++)for(intj=1;j<=n;j++)if(dis[i][j]>dis[i][k]+dis[k][j])//后面两条件若不加,则可以因为负权边把本不连通的边算成连通的边dis[i][j]=dis[i][k]+dis[k][j];for(inti=1;i<=n;i++)for(intj=1;j<=n;j++)if(dis[i][j]>1e13)dis[i][j]=inf;for(inti=1;i<=n;i++)for(intj=1;j<=n;j++)s^=dis[i][j]+inf;cout<#includeusingnamespacestd;constintN=100;boolh[N][N],q[N][N];inta[N],b[N],n,m,ans;intmain(){ios::sync_with_stdio(0);intx,y;cin>>n>>m;for(inti=1;i<=m;i++){cin>>x>>y;h[x][y]=q[y][x]=true;}for(intk=1;k<=n;k++)for(inti=1;i<=n;i++)for(intj=1;j<=n;j++){h[i][j]=h[i][j]||h[i][k]&&h[k][j];q[i][j]=q[i][j]||q[i][k]&&q[k][j];}for(intk=1;k<=n;k++)for(inti=1;i<=n;i++){if(h[k][i])a[k]++;if(q[k][i])b[k]++;}for(inti=1;i<=n;i++)if(a[i]>=(n+1)/2||b[i]>=(n+1)/2)ans++;cout<#includeinlineintread(){charc=getchar();intn=0;while(c<'0'||c>'9'){c=getchar();}while(c>='0'&&c<='9'){n=(n<<1)+(n<<3)+(c&15);c=getchar();}returnn;}constintmaxN=100005;intn,m,ans,fa[maxN*3];intfind(intu){returnfa[u]==uu:fa[u]=find(fa[u]);}intmain(){n=read(),m=read();for(inti=1;i<=n*3;i++){fa[i]=i;}for(;m;m--){intopt=read(),u=read(),v=read();if(u>n||v>n){ans++;continue;}if(opt==1){if(find(u+n)==find(v)||find(u)==find(v+n)){ans++;}else{fa[find(u)]=find(v);fa[find(u+n)]=find(v+n);fa[find(u+n+n)]=find(v+n+n);}}else{if(find(u)==find(v)||find(u)==find(v+n)){ans++;}else{fa[find(u+n)]=find(v);fa[find(u+n+n)]=find(v+n);fa[find(u)]=find(v+n+n);}}}printf("%d\n",ans);return0;}点击查看AC代码第五节最小生成树
//1394:连接格点(grid)#includeusingnamespacestd;constintN=1e6+1;intn,m,fa[N],num[N],sum,row[1000],ans;intfind(intx){if(fa[x]!=x)fa[x]=find(fa[x]);returnfa[x];}intmain(){ios::sync_with_stdio(0);cin>>m>>n;intx1,y1,x2,y2,a,b;for(inti=1;i<=n*m;i++)num[i]=1,fa[i]=i;while(cin>>x1){cin>>y1>>x2>>y2;a=x1*n+y1-n;b=x2*n+y2-n;a=find(a),b=find(b);if(a!=b){fa[b]=a,num[a]+=num[b];if(y1!=y2)if(y1