做传媒网站公司简介,红酒网站建设,wordpress图片广告,网络安全管理系统水题 题意#xff1a;有n个城市#xff0c;给你每个城市能到达城市的数量#xff0c;要你构图#xff0c;输出有向边#xff0c;要求无环#xff0c;输出任意的解 例#xff1a; Sample Input 332 1 021 143 1 1 0Sample OutputCase #1: Yes21 22 3Case #2: NoCase #3: … 水题 题意有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.vb.v;
}
int b[100000088][2];int main()
{int t;cint;int dd0;while(t--){int n;cinn;for(int i1; in; i){cina[i].v;a[i].ii;}sort(a1,an1,cmp);int ans0;bool faatrue;for(int i1; in; i){if(a[i].v!0){printf(Case #%d: No\n,dd);faafalse;break;}bool fatrue;for(int qi; qn; q){if(a[q].v!0)fafalse;}if(fa){printf(Case #%d: Yes\n,dd);break;}for(int qi; qn; 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 i0; ians; i){printf(%d %d\n,b[i][0],b[i][1]);}}}return 0;
} View Code 转载于:https://www.cnblogs.com/aishuijdemiaomiao/p/5754966.html