Codeforces 44I Toys (构造)
2016-04-01 16:39
471 查看
#include <bits/stdc++.h> using namespace std; #define N 122 #define mod 1000000007 #define vvi vector<vector<int> > #define vi vector<int> #define pb push_back int n; int p ; bool vis[12]; void output(vi &s) { memset(vis, 0, sizeof vis); bool fst = 1; while(1) { int u = -1; for(int i = 0; i < s.size(); ++i) { if(!vis[s[i]]) { u = s[i]; vis[s[i]] = 1; break; } } if(u == -1) break; vi t; for(int i = 0; i < s.size(); ++i) { if(s[i] == u) t.pb(i + 1); } if(fst) fst = 0; else putchar(','); printf("{"); for(int i = 0; i < t.size(); ++i) { printf("%d%c", t[i], i == t.size() - 1? '}': ','); } } puts(""); } int main() { scanf("%d", &n); vvi x; vi t; t.pb(0); x.pb(t); for(int i = 2; i <= n; ++i) { vvi y; for(int j = 0; j < x.size(); ++j) { int mx = 0; for(int k = 0; k < x[j].size(); ++k) { mx = max(mx, x[j][k]); } mx++; if(j % 2 == 0) { vi t = x[j]; t.pb(0); y.pb(t); for(int k = mx; k >= 1; --k) { t = x[j]; t.pb(k); y.pb(t); } } else { vi t = x[j]; for(int k = 1; k <= mx; ++k) { t = x[j]; t.pb(k); y.pb(t); } t = x[j]; t.pb(0); y.pb(t); } } x = y; } printf("%d\n", (int)x.size()); for(int i = 0; i < x.size(); ++i) { output(x[i]); } return 0; }
相关文章推荐
- ios学习--正则表达式初探
- 色度图的问题
- C#中axWindowsMediaPlayer控件的用法
- popwindow焦点问题
- 封装篇——Fragment懒加载
- Android Volley完全解析(二),使用Volley加载网络图片
- SQLite加密方式
- Java二维数组
- ionic添加admob广告教程
- sql数值显示成千分位分隔符的形式
- SPRING IN ACTION 第4版笔记-第十一章Persisting data with object-relational mapping-004JPA例子的代码
- rabbitmq3.6.1 集群的安装(启用MQTT插件)
- 一些常用的android架包
- AC自动机训练(16.04.01)
- xml数据作为表单参数在网络传递也需要用urlencode处理
- 基于TCP/IP 协议的简单C/S程序
- oc 跳转控制方法
- jQuery基本用法
- http://appxcode.com/index.php
- Android GridView横向滚动,分页加载数据