水题

  题意:有n个城市,给你每个城市能到达城市的数量,要你构图,输出有向边,要求无环,输出任意的解

  例:

Sample Input

3
3
2 1 0
2
1 1
4
3 1 1 0

Sample Output
Case #1: Yes
2
1 2
2 3
Case #2: No
Case #3: Yes
4
1 2
1 3
2 4
3 4

  想法:不构成环,就是最终有一个边为零,所以至少有一城市能到达的城市数为零,所以可以逐层的连向零点的边,如果最后为都为零,表示构图成功,否则失败

  代码:

#include <iostream>
#include <stack>
#include <queue>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define maxn 110000
using namespace std;struct node
{int v,i;} a[1100];
bool cmp(node a,node b)
{return a.v<b.v;
}
int b[1000000+88][2];int main()
{int t;cin>>t;int dd=0;while(t--){int n;cin>>n;for(int i=1; i<=n; i++){cin>>a[i].v;a[i].i=i;}sort(a+1,a+n+1,cmp);int ans=0;bool faa=true;for(int i=1; i<=n; i++){if(a[i].v!=0){printf("Case #%d: No\n",++dd);faa=false;break;}bool fa=true;for(int q=i; q<=n; q++){if(a[q].v!=0)fa=false;}if(fa){printf("Case #%d: Yes\n",++dd);break;}for(int q=i; q<=n; q++){if(a[q].v!=0){b[ans][0]=a[q].i;b[ans++][1]=a[i].i;a[q].v--;}}}if(faa){printf("%d\n",ans);for(int i=0; i<ans; i++){printf("%d %d\n",b[i][0],b[i][1]);}}}return 0;
}

View Code

转载于:https://www.cnblogs.com/aishuijdemiaomiao/p/5754966.html

hdu 5813 Elegant Construction相关推荐

  1. HDU - 3516 Tree Construction

    HDU - 3516 思路: 平行四边形不等式优化dp :) 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optim ...

  2. Elegant Construction HDU-5813 构造

    - 题意 给出我们从1-n城市的点能直接(或间接)到达的城市的数量作为这个点的权值 让我们判断并构造一个单向图 使得这个图完全契合给出的数据 special judge 任意一组结果就可以题目中给出 ...

  3. ACM比赛经验、刷题记录及模板库总结(更新中)

    前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...

  4. kuangbin带你飞专题合集

    题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...

  5. 动态规划总结与题目分类

    源博客链接:http://blog.csdn.net/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少 ...

  6. dp进阶之FFT加速+数据结构优化+不等式优化

    快速傅里叶变换 快速傅里叶变换(英语:Fast Fourier Transform, FFT),是快速计算序列的离散傅里叶变换(DFT)或其逆变换的方法.傅里叶分析将信号从原始域(通常是时间或空间)转 ...

  7. 算法学习经典例题整理

    陆续会对本篇博客进行更新! 搜索:https://vjudge.net/contest/292597 区间DP:https://vjudge.net/contest/293892 树状背包:https ...

  8. (转)dp动态规划分类详解

    dp动态规划分类详解 转自:http://blog.csdn.NET/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间 ...

  9. 《动态规划》— 动态规划分类

    动态规划(英语:Dynamic programming,DP)是一种在数学.计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法. 动态规划常常适用于有重叠子问题和最 ...

最新文章

  1. python官网下载步骤linux-linux下安装python
  2. Java中关于枚举的7种用法
  3. java中怎么表示数组中的某个值_简易Java(12):如何高效检查一个数组中是否包含某个值?...
  4. (Oracle)DDL及其数据泵导入导出(impdp/expdp)
  5. junit与spring-data-redis 版本对应成功的
  6. Rstudio更换主题/样式
  7. vue-tv-focusable
  8. 使用AMOS图形建立和检测模型(3)
  9. HTML5的文档声明
  10. Unity 模拟投影器(Projector Simulator)
  11. python斗地主游戏源码_Python实现的斗地主引擎
  12. 软考-系统架构设计师(软件架构风格)
  13. Unity让图片动起来
  14. DELL戴尔Win10双硬盘安装Ubuntu20.04双系统(附带ROS安装教程)
  15. 帮我写一个无数爱心滑落的html
  16. warpAffine函数解析
  17. 服务器设备管理系统,用勤哲Excel服务器实现设备管理系统
  18. 诺贝尔物理学奖公布:LED灯将点亮了整个21世纪
  19. 超市用监控摄像头多大角的_小门店安装监控?
  20. 原生JS仿造华为商城案例-实现了简单页面-两种轮播图思路的实现-动态展示数据

热门文章

  1. 单片机c语言程序设计叶俊明,单片机C语言程序设计
  2. activemq 延时队列以及不生效问题
  3. 分布式锁是啥?zk还是redis?
  4. 精心整理吐血推荐的AUTOSAR科普介绍材料
  5. 学习、积累、交流-IC设计高手的成长之路
  6. Linux中的动态链接库与静态链接库
  7. velocity模板的语法简要汇总
  8. latex 表格中虚线_如何识别和修复表格识别中的虚线
  9. 肖像:作家艺术家之一
  10. 可以用推理来过度分析《无穷动》