USACO4.4.1 Shuttle Puzzle (shuttle)
2015-02-03 20:27
387 查看
不知道谁想到找规律的。
4 35 642 1357 642 35 4 (n=3)
5 46 753 2468 97531 2468 753 46 5 (n=4)
就是2*n+1组等差数列。
先求出1到n+1组,然后根据对称性求出剩下的。
奇数组为降序,偶数组为升序;奇数组首项为n+i,偶数组首项为n-i+2。
4 35 642 1357 642 35 4 (n=3)
5 46 753 2468 97531 2468 753 46 5 (n=4)
就是2*n+1组等差数列。
先求出1到n+1组,然后根据对称性求出剩下的。
奇数组为降序,偶数组为升序;奇数组首项为n+i,偶数组首项为n-i+2。
/* ID:xsy97051 LANG:C++ TASK:shuttle */ #include <cstdio> #include <iostream> #include <cstring> using namespace std; int main() { freopen("shuttle.in","r",stdin); freopen("shuttle.out","w",stdout); int n,t,s,res[500],tt=0; memset(res,0,sizeof(res)); cin>>n; for(int i=2;i<=n+1;i++) { if(i%2==1) t=-2; else t=2; if(i%2==1) s=n+i; else s=n-i+2; res[++tt]=s; for(int j=2;j<=i;j++) { s+=t; res[++tt]=s; } } for(int i=n;i>=2;i--) { if(i%2==1) t=-2; else t=2; if(i%2==1) s=n+i; else s=n-i+2; res[++tt]=s; for(int j=2;j<=i;j++) { s+=t; res[++tt]=s; } } res[++tt]=n+1; for(int i=1;i<=tt;i++) { cout<<res[i]; if((i%20==0)||(i==tt)) cout<<endl; else cout<<" "; } return 0; }
相关文章推荐
- USACO4.4.1 Shuttle Puzzle (shuttle)
- usaco training 4.4.1 Shuttle Puzzle 题解
- C++——【USACO 4.4.1】——Shuttle Puzzle
- [USACO 4.4.1 Shuttle Puzzle]
- usaco-4.4.1-shuttle
- USACO 4.4.1 Shuttle Puzzle 棋盘游戏 题解与分析
- usaco 4.4.1 Shuttle Puzzle
- [usaco] 4.4.1PROB Shuttle Puzzle
- usaco4.4.1 Shuttle Puzzle
- usaco 4.4 Shuttle Puzzle 2010.8.8
- BZOJ1577 USACO 2009 Feb Gold 1.Fair Shuttle Solution
- usaco Shuttle Puzzle
- USACO Section 4.4 Shuttle Puzzle - Hash都不用的DFS水题..
- USACO 4.4 shuttle puzzle
- USACO 4.4.1 Shuttle Puzzle棋盘游戏
- usaco shuttle puzzle(dfs剪枝)
- Shuttle Puzzle[USACO]
- USACO 4.4 Shuttle Puzzle
- usaco--shuttle
- USACO 4.4 Shuttle Puzzle(dfs)