hdu5813
来源:互联网 发布:安卓手机运行java程序 编辑:程序博客网 时间:2024/05/18 18:02
题意:给n个点,构建有向图,使从每个点出发能到达的点恰好为为cnt
思路:把cnt从小到大排序,对于每个点,若排在其之前的点数目>=cnt,则能构建成功。然后从第一个开始与i连接就好。
一开始理解错了,以为必须要构建最小边数
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <stack>#include <queue> #include <map> #include <set> #include <vector> #define LL long long #define eps 1e-8 #define maxn 150 #define mod 110119 #define inf 0x3f3f3f3f #define IN freopen("in.txt","r",stdin); using namespace std; struct node{int num;int cnt;}E[1005];bool cmp(struct node a,struct node b){return a.cnt<b.cnt; }int main(){//IN;int t;cin>>t;int ca=1;while(t--){printf("Case #%d: ",ca++);int n;int sum=0;scanf("%d",&n);for(int i=0;i<n;i++){E[i].num=i;scanf("%d",&E[i].cnt);sum+=E[i].cnt;}sort(E,E+n,cmp);int sign=0;for(int i=0;i<n;i++){if(E[i].cnt>i){sign=1;break;}}if(sign==1){printf("No\n");continue;}printf("Yes\n%d\n",sum);for(int i=0;i<n;i++){for(int j=0;j<E[i].cnt;j++){printf("%d %d\n",E[i].num+1,E[j].num+1);}}}return 0;}
0 0
- hdu5813
- hdu5813
- 【HDU5813】Elegant Construction(贪心)
- HDU5813 Elegant Construction
- HDU5813-Elegant Construction
- hdu5813 Elegant Construction(构造)
- 多校联合训练7&&HDU5813
- HDU5813 Elegant Construction 2016 Multi-University Training Contest 7(构造)
- 2016多校训练Contest7: 1005 Elegant Construction hdu5813
- HDU5813(多校第七场)——Elegant Construction(模拟构造)
- 关于注解框架ButterKnife的一些事
- Eclipse:java could not open jvm.cfg 和 could load jni jvm.dll
- Xcode插件篇之XVim
- 打印: 金字塔
- 我的微信公众号-炼情苑
- hdu5813
- PHP安全编程之关于表单欺骗提交
- hadoop中hdfs文件下载
- ios 中Nsstirng,Nsdata,char,byte,UIImage 之间的转换
- 微信接口测试号时用ngrok开发网页授权时填写回调域名
- C++类型转换
- 支付清算体系介绍-上
- USB启动盘制作的几种方式
- 两种代码重用机制——组合与继承