/*题目描述:给出n个人的分数,每轮选出2~5个人,把他们的分数减1,现要求把所有人的分数全部变成t,要求t最大,输出每一轮选人的策略。思路:注意两个性质:1、每轮选2个或3个人,因为如果有一轮选了4个人,可以分成两轮每轮选两个人;如果有一轮选了5个人,可以分成两轮,一轮选2个人,一轮选3个人2、如果最终所有人的分数是t(即保证t是可以实现的分数的前提下),所有人初始时的分数总和是sum,那么sum-n*t如果是偶数的话,一定可以通过每一轮选两个人来实现;如果是奇数的话,一定可以通过有一轮选3人,其余每轮选两人来实现。
*/
#pragma warning(disable:4786)
#pragma comment(linker, "/STACK:102400000,102400000")
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<cmath>
#include<string>
#include<sstream>
#define LL long long
#define FOR(i,f_start,f_end) for(int i=f_start;i<=f_end;++i)
#define mem(a,x) memset(a,x,sizeof(a))
#define lson l,m,x<<1
#define rson m+1,r,x<<1|1
using namespace std;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7;
const double PI = acos(-1.0);
const double eps=1e-6;
const int maxn = 1e2 + 5 ;
int ans[maxn * maxn][maxn] , r[maxn] , n ;
struct node
{int val , num ;bool operator<(const node & rhs)const{return val < rhs.val ;}
};
int solve(int x)
{mem(ans ,0) ;priority_queue<node>Q;int sum = 0;for(int i = 1 ; i<= n ; i++){node st = {r[i] - x , i} ;if(st.val != 0){sum += st.val ;Q.push(st) ;}}int cnt = Q.size() , cur = 1 ;node y[4] ;if(sum & 1){if(cnt < 3)   return 0;for(int i = 1 ; i <= 3 ; i++){y[i] = Q.top();--y[i].val ;++ans[cur][y[i].num];Q.pop();}for(int i = 1 ; i<= 3 ; i++){if(y[i].val != 0){Q.push(y[i]);}}++cur;}while(!Q.empty()){for(int  i = 1 ; i<= 2 ; i++){y[i] = Q.top();Q.pop();++ans[cur][y[i].num];--y[i].val ;}for(int i = 1 ; i<= 2 ; i++){if(y[i].val != 0){Q.push(y[i] ) ;}}++cur;if(Q.size() == 1)return 0 ;}return (cur - 1 ) ;
}
int main()
{while(scanf("%d",&n)!=EOF){int maxv = -1 , minv = INF , tag = 0 ;for(int i = 1 ; i<= n ; i++){scanf("%d",&r[i]);if(i >1 && r[i] != r[i-1])      tag = 1;minv = min(minv , r[i]) ;maxv = max(maxv , r[i]) ;}if(!tag){printf("%d\n0\n",r[1]);continue ;}int flag = 0 , res , t ;for(int i = minv ; i > 0  ; --i){if(t = solve(i)){flag = 1 ;res = i ;break;}}if(!flag){printf("%d\n%d\n", 0 , n * maxv);for(int i = 1 ; i<= n ; i++){for(int j = 1 ; j<= maxv ; j++){for(int k = 1 ; k <= n ; k++){if(k == 1 || k == 2 || k == i)printf("1");elseprintf("0");}printf("\n") ;}}}else{printf("%d\n%d\n",res , t );for(int i = 1 ; i<= t ; i++){for(int j = 1 ; j<= n ; j++){printf("%d",ans[i][j]);}printf("\n") ;}}}return 0;
}

2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest A Toda2 贪心相关推荐

  1. 【*2000】【2018-2019 ICPC, NEERC, Southern Subregional Contest C 】Cloud Computing

    [链接] 我是链接,点我呀:) [题意] [题解] 我们可以很容易知道区间的每个位置有哪些安排可以用. 显然 我们优先用那些花费的钱比较少的租用cpu方案. 但一个方案可供租用的cpu有限. 我们可以 ...

  2. [CodeForces1070C]Cloud Computing(2018-2019 ICPC, NEERC, Southern Subregional Contest )

    传送门:戳我 在cf上做的镜像赛,结果不是很妙啊.. 这题是用时最长但并没有在比赛内写出来(事实上在赛后还话了大概五小时调试才找出错误) 首先不难发现我们需要一棵线段树,(其实一开始我考虑的是主席树) ...

  3. Codeforces 1070A Find a Number(BFS) 2018-2019 ICPC, NEERC, Southern Subregional Contest Problem A

    Description You are given two positive integers ddd and sss. Find minimal positive integer nnn which ...

  4. 2017 ACM ICPC Asia Shenyang Regional Contest 题解(10 / 13)【每日亿题2 / 16】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A.(2017 ICPC shenyang I)Little Boxes B.(2017 ICP ...

  5. 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem I. Plugs and Sockets 费用流

    Problem I. Plugs and Sockets 题目连接: http://www.codeforces.com/gym/100253 Description The Berland Regi ...

  6. 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest

    A. Automatic Door 对于规律的点可以推公式计算,对于噪点则暴力计算,时间复杂度$O(m\log m)$. #include<stdio.h> #include<ios ...

  7. 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem D. Grumpy Cat 交互题

    Problem D. Grumpy Cat 题目连接: http://www.codeforces.com/gym/100253 Description This problem is a littl ...

  8. 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem C. Equivalent Cards 计算几何

    Problem C. Equivalent Cards 题目连接: http://www.codeforces.com/gym/100253 Description Jane is playing a ...

  9. 2016 ACM / ICPC Asia dalian Regional Contest 题解(11 / 11)【每日亿题2021 / 2 / 17】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A .(2017 ACM ICPC dalian H)To begin or not to be ...

  10. 2017 ACM ICPC Asia Regional - Daejeon

    2017 ACM ICPC Asia Regional - Daejeon Problem A Broadcast Stations 题目描述:给出一棵树,每一个点有一个辐射距离\(p_i\)(待确定 ...

最新文章

  1. 2021年春季学期-信号与系统-第八次作业参考答案-第四小题
  2. 2019年最新10份开源Java精选资料
  3. linux ping IP地址与telnet 测试IP端口
  4. 每日程序C语言14-小球反弹高度问题
  5. extern 用法,全局变量与头文件(重复定义)
  6. linux 扩充db2表空间,如何扩充db2的表空间、加容器等表空间维护操作
  7. 计算机怎样辅助英语听力教学方法有哪些,计算机辅助教学在英语听力中的运用.doc...
  8. 电脑屏保海底世界_炸弹测深出来的海底一万米,都藏有何种玄机?
  9. 346雷达有多少tr组件_有源相控阵的天线设计的核心:T/R组件
  10. Nginx 核心架构设计
  11. Java中将16进制字符串转换成汉字
  12. R语言软件R Studio以及python下载函数包使用常见问题(持续更新中)
  13. 大数据项目实战——基于某招聘网站进行数据采集及数据分析(一)
  14. 微信表情包储服务器,微信表情包不用收藏,只需打开这个设置,再也不担心斗图了...
  15. IT界有哪些书是必看的?
  16. origin绘图软件安装包及入门使用
  17. android实现开机自动运行程序,Android编程实现应用程序开机自启动的方法
  18. 图像修复论文阅读笔记-----Globally and Locally Consistent Image Completion
  19. EXCEL表格单元格中有数字和文字怎么将数字部分提取出来
  20. 商科能读计算机专业吗,我本科读的计算机 想去新西兰留学可以换专业吗? 没分了跪求啊,...

热门文章

  1. 3.4.3 区域与图像的平均灰度值
  2. Oracle11g64位安装教程
  3. 服务器被攻击 显示503,打开网页后出现503 service unavailable等字样,什么意思
  4. 垃圾邮件分类系统python_【Python】基于Bayes算法的垃圾邮件分类系统
  5. TexturePacker 图片加密
  6. QT 连接 MySQL 失败:手动编译 MySQL 驱动插件
  7. 联想Y470 非虚拟机安装苹果Mac OS X Mavericks 10.9.1教程详解(文字+图片),通俗易懂亲自动手——序列三之安装过程,设置选项
  8. 快播将关闭QVOD服务器 清理低俗内容与涉盗版内容
  9. 想买个吉他英雄3的正版
  10. RNN预测股票开盘价(TensorFlow,tensorboard可视化)