hdu_5813_Elegant Construction(xjb搞)
题目链接:hdu_5813_Elegant Construction
题意:
给你n个点,每个点要可以到达ai个点,可以直接可以间接,不能有环,问是否可行,如果可行就任选一种方式连接,并输出连接的边数和边
题解:
我们按每个点要能到达的点数从小到大排序,然后枚举每个点i,对前面的j(j<i)连一条边,这样保证能到达ai个点,如果第i个点大于等于i,那么肯定没有方案,此时不能向后面的点连边,如果连了就成环了。
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>P;
int t,n,x,y;
P dt[];
int main()
{
int t;scanf("%d",&t);
for(int ic=;ic<=t;ic++)
{
scanf("%d",&n);
int sum=;
for(int i=;i<=n;i++)
{
scanf("%d",&x),sum+=x;
dt[i].first=x,dt[i].second=i;
}
sort(dt+,dt++n);
int fg=;
for(int i=;i<=n;i++)if(dt[i].first>=i){fg=;break;}
if(fg)printf("Case #%d: No\n",ic);
else
{
printf("Case #%d: Yes\n",ic);
printf("%d\n",sum);
for(int i=;i<=n;i++)
{
for(int j=;j<=dt[i].first;j++)
printf("%d %d\n",dt[i].second,dt[j].second);
}
}
}
return ;
}
hdu_5813_Elegant Construction(xjb搞)的更多相关文章
- hdu_5873_Football Games(xjb搞)
题目链接:hdu_5873_Football Games 题意: 有n个队,每个队都会给其他队打一场,赢一场得2分,平局得一分,输了不得分,然后给你全部比赛结束后的得分,问你是否有假分 题解: 可以知 ...
- [HDU5902]GCD is Funny(xjb搞)
题意:n个数每次选三个数删除,取其中两个数将gcd放回去两次,问最后剩的数可能是多少 分析:考虑最优情况: 先拿出三个数,留下两个x,x 再来一个y,(x,x,y)我们可以删去一个x,留下两个gcd ...
- hdu_5927_Auxiliary Set(xjb搞)
题目链接:hdu_5927_Auxiliary Set 题意: 给一棵n个节点的树,最开始全部都是重点,现在有q个询问,每次给你一些轻点,并叫你输出整棵树的重点数量, 轻点可能会变为重点,如果这个轻点 ...
- hdu_5805_NanoApe Loves Sequence(xjb搞)
题目链接:hdu_5805_NanoApe Loves Sequence 题意: 给你n个数,现在要删一个数,删每个数的概率是一样的,现在问你删一个值后的相邻数绝对值最大差的期望是多少,因为担心精度误 ...
- hdu_5752_Sqrt Bo(xjb搞)
题目链接:hdu_5752_Sqrt Bo 题意: 给你一个数,问你最少要开多少次方才能为1 题解: 我们发现如果给的数大于232 那么肯定在5次以内是开不出来的,所以直接输出TAT,然后小于的就模拟 ...
- thusc滚粗记
day0 下午到了北京,雾霾还是那么大.. 到宾馆报个到,和哥哥吃了一波饭,去不起西郊...只能去五道口了... 晚上和wyz队长见面,wyz队长好帅啊...没带手机拍照真是个错误TAT day1 今 ...
- 2016年江西理工大学C语言程序设计竞赛(初级组)
问题 A: 木棒根数 解法:把所有的情况保存下来,加一下就好 #include<bits/stdc++.h> using namespace std; map<char,int> ...
- Codeforces Round #292 (Div. 1) C. Drazil and Park 线段树
C. Drazil and Park 题目连接: http://codeforces.com/contest/516/problem/C Description Drazil is a monkey. ...
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset
题目链接:Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset 题意: 给你一些操作,往一个集合插入和删除一些数,然后?x让你找出与x异或后的最大值 ...
随机推荐
- Maven之(一)Maven是什么
首先,Maven的正确发音是[ˈmevən],而不是"马瘟"以及其他什么瘟.Maven在美国是一个口语化的词语,代表专家.内行的意思,约等于北京话中的老炮儿. 一个对Maven比较 ...
- TypeScript -- 面向对象特性
.class关键字和类名就可以定义一个类 . 类的访问控制符--有三个,.] = ] = ] = ;.声明参数 .用接口声明方法 .理解模块--一个文件就是一个模块,就是这么个意思 ,不用想的多么高大 ...
- php dday1... web服务器的搭建 数据库的安装....
- C++四种cast操作符
C 风格(C-style)强制转型如下: (T) expression 或 T(expression) //函数风格(Function-style) 两种形式之间没有本质上的不同. 对于具有转换的简 ...
- find中的-print0和xargs中-0的区别
默认情况下, find 每输出一个文件名, 后面都会接着输出一个换行符 ('\n'), 因此我们看到的 find 的输出都是一行一行的: [bash-4.1.5] ; ls -l total 0 -r ...
- 在ueditor编辑器的光标停留处插入内容
业务场景: 首先在ueditor编辑器中插入一段文本,然后我想在文本的某个位置(光标停留处)插入一个字符串,这个字符串是从页面的其他地方选择得来的. 注意,当我们点击ueditor编辑器以外的地方,编 ...
- Android 不能返回 parent Activity 的问题
使用 ActionBar,开启返回按钮: 在 Activity 的 onCreate 中添加下面代码 getSupportActionBar().setDisplayHomeAsUpEnabled(t ...
- 【Python】回文
首先判断一个字符串是否回文: def isPlalind(s): if len(s) == 1: return True else: return s[0] == s[-1] and isPlalin ...
- Python学习笔记——基础篇【第六周】——json & pickle & shelve & xml处理模块
json & pickle 模块(序列化) json和pickle都是序列化内存数据到文件 json和pickle的区别是: json是所有语言通用的,但是只能序列化最基本的数据类型(字符串. ...
- gulp插件大全
原文:http://www.mamicode.com/info-detail-517085.html No.1.run-sequence 作用:让gulp任务,可以相互独立,解除任务间的依赖,增强 ...