循环赛程表【only code】
2015-10-21 16:58
197 查看
#include <cstdio> #include <cstring> #include <iostream> using namespace std; #define maxn 110 int ans[maxn][maxn]; void cal(int l,int r,int ll,int rr,int d) { int upmid=(r+l)>>1,leftmid=(rr+ll)>>1; for(int i=l;i<=upmid;i++) for(int j=leftmid+1;j<=rr;j++) ans[j][i]=ans[j-d][i+d]; for(int i=upmid+1;i<=r;i++) for(int j=leftmid+1;j<=rr;j++) ans[j][i]=ans[j-d][i-d]; } int main() { int n; while(cin>>n) { for(int i=1;i<=n;i++) { ans[1][i]=i; } for(int i=2;i<=n;i*=2) { for(int j=1;j<=n;j+=i) { cal(j,j+i-1,1,i,i>>1); } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) cout<<ans[i][j]<<" "; cout<<endl; } } return 0; }
相关文章推荐
- jQuery 选择框 Selectator
- html5体验优化页面加载的14条建议
- c++ 内存分析
- Android 文件多线程断点续传下载
- activex 部署到web上问题
- bnu24252 海盗分赃
- 新浪项目笔记
- 鼠标滑动--水滴效果
- android listview圆角
- WM_USER以及自定义消息WM_XXXX的定义 声明 实现
- 队列---循环队列
- 表格布局页面
- linux(工具)
- 项目环境配置jar包问题
- iOS 内存管理(strong weak copy)详解
- Android图片处理
- android中具有分隔功能的edittext
- JavaScript完成简单的对联广告
- hbase分页的功能实现
- Weka简介