HDU 5813 Elegant Construction
构造。从a[i]最小的开始放置,例如放置了a[p],那么还未放置的,还需要建边的那个点 需求量-1,然后把边连起来。
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<iostream>
using namespace std;
typedef long long LL;
const double pi=acos(-1.0),eps=1e-;
void File()
{
freopen("D:\\in.txt","r",stdin);
freopen("D:\\out.txt","w",stdout);
}
inline int read()
{
char c = getchar(); while(!isdigit(c)) c = getchar(); int x = ;
while(isdigit(c)) { x = x * + c - ''; c = getchar(); }
return x;
} const int maxn=+;
int T,n,sz;
struct X{int f,num; }s[maxn],ans[maxn*maxn]; bool cmp(X a, X b) {return a.num<b.num; } int main()
{
scanf("%d",&T); int cas=;
while(T--)
{
scanf("%d",&n); sz=;
for(int i=;i<=n;i++) { scanf("%d",&s[i].num); s[i].f=i; }
sort(s+,s++n,cmp);
bool fail=;
for(int i=;i<=n;i++)
{
if(s[i].num!=) { fail=; break; }
for(int j=i+;j<=n;j++)
{
if(s[j].num==) continue;
ans[sz].f=s[i].f; ans[sz].num=s[j].f; sz++; s[j].num--;
}
} printf("Case #%d: ",cas++);
if(fail==) { printf("No\n"); continue; }
else printf("Yes\n");
printf("%d\n",sz);
for(int i=;i<sz;i++) printf("%d %d\n",ans[i].num,ans[i].f);
}
return ;
}
HDU 5813 Elegant Construction的更多相关文章
- HDU 5813 Elegant Construction(优雅建造)
HDU 5813 Elegant Construction(优雅建造) Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65 ...
- HDU 5813 Elegant Construction (贪心)
Elegant Construction 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5813 Description Being an ACMer ...
- HDU 5813 Elegant Construction 构造
Elegant Construction 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5813 Description Being an ACMer ...
- HDU 5813 Elegant Construction ——(拓扑排序,构造)
可以直接见这个博客:http://blog.csdn.net/black_miracle/article/details/52164974. 对其中的几点作一些解释: 1.这个方法我们对队列中取出的元 ...
- HDU5813 Elegant Construction
Elegant Construction Time Li ...
- hdu-5813 Elegant Construction(贪心)
题目链接: Elegant Construction Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (J ...
- 2016 多校联赛7 Elegant Construction
Being an ACMer requires knowledge in many fields, because problems in this contest may use physics, ...
- HDU 3516 Tree Construction (四边形不等式)
题意:给定一些点(xi,yi)(xj,yj)满足:i<j,xi<xj,yi>yj.用下面的连起来,使得所有边的长度最小? 思路:考虑用区间表示,f[i][j]表示将i到j的点连起来的 ...
- HDU.3516.Tree Construction(DP 四边形不等式)
题目链接 贴个教程: 四边形不等式学习笔记 \(Description\) 给出平面上的\(n\)个点,满足\(X_i\)严格单增,\(Y_i\)严格单减.以\(x\)轴和\(y\)轴正方向作边,使这 ...
随机推荐
- openstack 装逼之路~openstack各组件关系
先来张图
- PHP奇怪现象
<?php $a = 0.29; $b = (int)($a*100); echo $b; //输出28,PHP版本5.6.24 echo 0.1 + 0.2 - 0.3; //输出5.5511 ...
- oracle数据库 参数open_cursors和session_cached_cursor详解!
open_cursors 每个session(会话)最多能同时打开多少个cursor(游标) session_cached_cursor 每个session(会话)最多可以缓存多少个关闭掉的curso ...
- vg
- 关于指针要注意的地方还有尝试在codeblocks上建立项目
1.字符串: char a[]="house"; char *b="house"; a[2]='r';可以 b[2]='r'不可以,因为这个指针变量指的是字 ...
- 第一篇,jos
关于jos环,使用递推公式简化问题和代码,关键在于找到正确的递推公式,可使用一个例子来寻找. (数学能力较差,只好打个表找规律了) 为方便取余运算,将编号1---n的下标表示为0--(n-1) ...
- JQ基础语法
empty HTML 代码: <p>Hello, <span>Person</span> <a href="#">and perso ...
- YII2.0 数据库增删改查
/*==================== dkhBaseModel 数据库增删改查方法 start ================================*/ //新增一条数据 publ ...
- document.compatMode属性介绍
之前不了解这个属性,今天总结一下,以后可能会用到. 对于document.compatMode,很多朋友可能都根我一样很少接触,知道他的存在却不清楚他的用途.今天在ext中看到 document.co ...
- JavaBean的属性变量名前两个字母大小写问题
Java属性命名规范! 一般情况下.Java的属性变量名都已小写字母开头,如:userName,showMessage等,但也存在着特殊情况,考虑到一些特定的有意思的英文缩略词如(USA,XML等), ...