HDU 5813 Elegant Construction (构造有向图)
来源:互联网 发布:java中public的翻译 编辑:程序博客网 时间:2024/05/24 22:45
Elegant Construction
题目链接:点我打开链接
Author
SYSU
Source
2016 Multi-University Training Contest 7
题意:要求构造一个有向图,使得点i能够到达Ai个点.
输出其中一个满足条件的图就可以。(special judge)。
输出其中一个满足条件的图就可以。(special judge)。
题解:将顶点按能到达的点数从小到大排序,排好序之后每个点只能往前面的点连边. 因而如果存在一个排在第i位的点,要求到达的点数小于等于i-1,则可以按照上述方法构造出图;否则 NO . 复杂度O(N^2).
AC代码:
#include<bits/stdc++.h>#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<cstring>#include<vector>#include<map>#include<queue>#include<set>#include<stack>using namespace std;typedef long long ll;typedef unsigned long long ull;int read(){ int v = 0, f = 1; char c =getchar(); while( c < 48 || 57 < c ){ if(c=='-') f = -1; c = getchar(); } while(48 <= c && c <= 57) v = v*10+c-48, c = getchar(); return v*f;}struct Node{ int num,id; }num[1005];;bool cmp(Node a,Node b){ return a.num<b.num;}int main(){ int t; scanf("%d",&t); for(int m=1;m<=t;m++) { int n; scanf("%d",&n); for(int j=1;j<=n;j++) { int temp; scanf("%d",&temp); num[j].id=j; num[j].num=temp; } sort(num+1,num+1+n,cmp); int flag=1; for(int i=1;i<=n;i++) { if(num[i].num<=i-1) //排序后,一个排在第 i位的点,要求到达的点数小于等于i-1 { continue; } else flag=0; } if(flag==0) printf("Case #%d: No\n",m); else { printf("Case #%d: Yes\n",m); int ans=0; for(int i=1;i<=n;i++) for(int j=1;j<=num[i].num;j++) { ans++; } printf("%d\n",ans); for(int i=1;i<=n;i++) for(int j=1;j<=num[i].num;j++) { printf("%d %d\n",num[i].id,num[j].id); } } } return 0;}
2 0
- HDU 5813 Elegant Construction (构造有向图)
- hdu 5813 Elegant Construction (构造)
- hdu 5813 Elegant Construction 构造
- HDU 5813 Elegant Construction(构造)
- Elegant Construction HDU-5813 构造
- hdu 5813 Elegant Construction 贪心构造
- 2016HDU多校联赛-HDU-5813-Elegant Construction(构造联通图)
- hdu 5813 Elegant Construction
- hdu 5813 Elegant Construction
- hdu 5813 Elegant Construction 贪心(多校)
- hdu 5813 Elegant Construction(贪心)
- HDU 5813 Elegant Construction(贪心)
- HDU 5813 Elegant Construction (贪心)
- 贪心(Elegant Construction,HDU 5813)
- hdu5813 Elegant Construction(构造)
- hdu 5813 Elegant Construction (模式)
- Hdu 5813 Elegant Construction【贪心】
- HDU 5813 Elegant Construction (贪心)
- 异常基础
- InputStreamReader和BufferedReader用法及真实案例
- POJ 3666
- c/c++常见知识点
- iOS 事件处理机制与图像渲染过程
- HDU 5813 Elegant Construction (构造有向图)
- JAVA成员变量和局部变量的区别
- POJ-1745 Divisibility
- MFC---多种方式显示位图
- 使用Http访问网络
- 判断素数的几种方法 杭电OJ 1397
- Hibernate实体类注解配置与xml配置
- ButterKnife使用详解
- Android概述、Common Layout介绍