hdu 5813 Elegant Construction
水题
题意:有n个城市,给你每个城市能到达城市的数量,要你构图,输出有向边,要求无环,输出任意的解
例:
Sample Input
想法:不构成环,就是最终有一个边为零,所以至少有一城市能到达的城市数为零,所以可以逐层的连向零点的边,如果最后为都为零,表示构图成功,否则失败
代码:
#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相关推荐
- HDU - 3516 Tree Construction
HDU - 3516 思路: 平行四边形不等式优化dp :) 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optim ...
- Elegant Construction HDU-5813 构造
- 题意 给出我们从1-n城市的点能直接(或间接)到达的城市的数量作为这个点的权值 让我们判断并构造一个单向图 使得这个图完全契合给出的数据 special judge 任意一组结果就可以题目中给出 ...
- ACM比赛经验、刷题记录及模板库总结(更新中)
前言 本文所提及的部分题目代码,可以在我的Github上找到 第一部分 经验分享及感受 第二部分 刷题记录 一.基础算法&程序语言 //strlen()函数的复杂度是O(n)要小心 //截取字 ...
- kuangbin带你飞专题合集
题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...
- 动态规划总结与题目分类
源博客链接:http://blog.csdn.net/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少 ...
- dp进阶之FFT加速+数据结构优化+不等式优化
快速傅里叶变换 快速傅里叶变换(英语:Fast Fourier Transform, FFT),是快速计算序列的离散傅里叶变换(DFT)或其逆变换的方法.傅里叶分析将信号从原始域(通常是时间或空间)转 ...
- 算法学习经典例题整理
陆续会对本篇博客进行更新! 搜索:https://vjudge.net/contest/292597 区间DP:https://vjudge.net/contest/293892 树状背包:https ...
- (转)dp动态规划分类详解
dp动态规划分类详解 转自:http://blog.csdn.NET/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间 ...
- 《动态规划》— 动态规划分类
动态规划(英语:Dynamic programming,DP)是一种在数学.计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法. 动态规划常常适用于有重叠子问题和最 ...
最新文章
- python官网下载步骤linux-linux下安装python
- Java中关于枚举的7种用法
- java中怎么表示数组中的某个值_简易Java(12):如何高效检查一个数组中是否包含某个值?...
- (Oracle)DDL及其数据泵导入导出(impdp/expdp)
- junit与spring-data-redis 版本对应成功的
- Rstudio更换主题/样式
- vue-tv-focusable
- 使用AMOS图形建立和检测模型(3)
- HTML5的文档声明
- Unity 模拟投影器(Projector Simulator)
- python斗地主游戏源码_Python实现的斗地主引擎
- 软考-系统架构设计师(软件架构风格)
- Unity让图片动起来
- DELL戴尔Win10双硬盘安装Ubuntu20.04双系统(附带ROS安装教程)
- 帮我写一个无数爱心滑落的html
- warpAffine函数解析
- 服务器设备管理系统,用勤哲Excel服务器实现设备管理系统
- 诺贝尔物理学奖公布:LED灯将点亮了整个21世纪
- 超市用监控摄像头多大角的_小门店安装监控?
- 原生JS仿造华为商城案例-实现了简单页面-两种轮播图思路的实现-动态展示数据