阅读背景:

[CCF] 201609-2 火车购票 Apare_xzc

来源:互联网 
201609-2 火车购票
题面:

在这里插入图片描述

思路:按题意模拟即可
我的代码 #include <bits/stdc++.h> using namespace std; int a[30][10]; void solve(int); int toPos(int,int); int main() { int n,p; cin>>n; while(n--) { cin>>p; solve(p); } return 0; } int toPos(int x,int y) { return (x-1)*5+y; } void solve(int p) { for(int i=1;i<=20;++i) { for(int j=1;j+p-1<=5;++j) { bool ok = true; for(int k=j;k<=j+p-1;++k) { if(a[i][k]) { ok = false; break; } } if(ok) { for(int k=j;k<=j+p-1;++k) a[i][k] = 1, printf("%d%c",toPos(i,k),k==j+p-1?'\n':' '); return; } } } ///连续的 for(int i=1;i<=20&&p>0;++i) ///不连续的 { for(int j=1;j<=5&&p>0;++j) { if(!a[i][j]) { a[i][j] = 1; printf("%d%c",toPos(i,j),p==1?' ':'\n'); if(--p==0) return; } } } } 我的代码 #include <



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: