题目链接: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搞)的更多相关文章

  1. hdu_5873_Football Games(xjb搞)

    题目链接:hdu_5873_Football Games 题意: 有n个队,每个队都会给其他队打一场,赢一场得2分,平局得一分,输了不得分,然后给你全部比赛结束后的得分,问你是否有假分 题解: 可以知 ...

  2. [HDU5902]GCD is Funny(xjb搞)

    题意:n个数每次选三个数删除,取其中两个数将gcd放回去两次,问最后剩的数可能是多少 分析:考虑最优情况: 先拿出三个数,留下两个x,x  再来一个y,(x,x,y)我们可以删去一个x,留下两个gcd ...

  3. hdu_5927_Auxiliary Set(xjb搞)

    题目链接:hdu_5927_Auxiliary Set 题意: 给一棵n个节点的树,最开始全部都是重点,现在有q个询问,每次给你一些轻点,并叫你输出整棵树的重点数量, 轻点可能会变为重点,如果这个轻点 ...

  4. hdu_5805_NanoApe Loves Sequence(xjb搞)

    题目链接:hdu_5805_NanoApe Loves Sequence 题意: 给你n个数,现在要删一个数,删每个数的概率是一样的,现在问你删一个值后的相邻数绝对值最大差的期望是多少,因为担心精度误 ...

  5. hdu_5752_Sqrt Bo(xjb搞)

    题目链接:hdu_5752_Sqrt Bo 题意: 给你一个数,问你最少要开多少次方才能为1 题解: 我们发现如果给的数大于232 那么肯定在5次以内是开不出来的,所以直接输出TAT,然后小于的就模拟 ...

  6. thusc滚粗记

    day0 下午到了北京,雾霾还是那么大.. 到宾馆报个到,和哥哥吃了一波饭,去不起西郊...只能去五道口了... 晚上和wyz队长见面,wyz队长好帅啊...没带手机拍照真是个错误TAT day1 今 ...

  7. 2016年江西理工大学C语言程序设计竞赛(初级组)

    问题 A: 木棒根数 解法:把所有的情况保存下来,加一下就好 #include<bits/stdc++.h> using namespace std; map<char,int> ...

  8. 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. ...

  9. Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset

    题目链接:Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset 题意: 给你一些操作,往一个集合插入和删除一些数,然后?x让你找出与x异或后的最大值 ...

随机推荐

  1. svn客户端的安装与中文版本语言库

    首先在mac下下载svn或者其他软件请看另一篇博客链接:http://www.cnblogs.com/minyc/p/myc201606191543.html 另附svn常用命令操作详解:http:/ ...

  2. js中访问action

    jsp中 <a href="javascript:Excel();" class="easyui-linkbutton" plain="true ...

  3. 提示找不到xml配置文件

    ClassPathXmlApplicationContext("applicationContext.xml")默认文件夹是resouerces,所以要把xml文件放在这个下面.

  4. on事件绑定阻止冒泡的问题

    当使用on进行事件绑定时当要给document绑定click,而子元素要禁止冒泡,那么子元素里面的子元素的click事件就会无效了, 下面无效版: $('#queue').on('click', '. ...

  5. Mammoth官方文档翻译

    用于.NET的.docx转HTML的Mammoth Mammoth可用于将.docx文档(比如由Microsoft Word创建的)转换为HTML.Mammoth致力于通过文档中的语义信息生成简洁的H ...

  6. 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】

    背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...

  7. eclipse安装插件的4种方式

    Eclipse插件的安装方法大体有以下三种:[9] 第一种:直接复制法 假设Eclipse的安装目录在C:\eclipse,解压下载的eclipse 插件或者安装eclipse 插件到指定目录AA(如 ...

  8. cocos坐标系及坐标转换

    cocos2dx的坐标系是以左下角为(0,0)点, 向右上为正 世界坐标系:相对于屏幕位置的坐标表示 节点坐标系:相对于父节点的坐标表示 可以相互转换: /** * 将世界坐标转换成节点坐标,忽略锚点 ...

  9. nginx的https环境如何配置

    http://www.cnblogs.com/yanghuahui/archive/2012/06/25/2561568.html http://www.fzb.me/2015-1-15-openss ...

  10. mysql备份和还原

    MySQLl提供了一个mysqldump命令,我们可以用它进行数据备份. 按提示输入密码,这就把abc数据库所有的表结构和数据备份到abc_20161108.sql了, # mysqldump -u ...