UVALive 6957 Hyacinth(读题)

解题:

感觉自己读题能力太差,读了好几遍才读懂。题意是指每个节点有两个频率,而题目给出的边代表这两个节点联通,这两个节点联通,则他们必须有一个相同的频率,现求一方案可以使得联通边用的频率数最多。那么,就是能用新值就用新值,若某个节点两个频率都有了,则取其中一个,赋值给另外一个节点的一个频率即可。最后把,仍未填的频率,填一下就好。

代码:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int store[10010][2],num[10010];
int main()
{
    int t,a,b,cnt;
	while(~scanf("%d",&t))
	{
		cnt=0;
		memset(store,0,sizeof(store));
		memset(num,0,sizeof(num));
		for(int i=1;i<t;i++)
		{
			scanf("%d%d",&a,&b);
			if(num[a]<2&&num[b]<2)
			{
				cnt++;
				store[a][num[a]]=cnt;
				store[b][num[b]]=cnt;
				num[a]++;
				num[b]++;
			}
			else if(num[a]==2)
			{
               store[b][num[b]]=store[a][1];
			   num[b]++;
			}
			else if(num[b]==2)
			{
				store[a][num[a]]=store[b][1];
				num[a]++;
			}
		}
		for(int i=1;i<=t;i++)
		{
			for(int j=0;j<2;j++)
				if(store[i][j]==0)
				  store[i][j]=++cnt;
		}
		for(int i=1;i<=t;i++)
			printf("%d %d\n",store[i][0],store[i][1]);
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 01:10:41

UVALive 6957 Hyacinth(读题)的相关文章

uvalive 6957 Hyacinth 题目难理解

#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <stack> #include <set> #include <map> #include <string> #include <ma

hdu 2079 选课时间(题目已修改,注意读题) 多重背包

选课时间(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3162    Accepted Submission(s): 2472 Problem Description 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合.你来帮帮他吧.(xhd认为一样学分的课没区别

poj1789 MST 读题生涯永不停歇

题目: 链接在此 1.图论刷刷乐#1的第一题,无奈看了好长时间题目还是看不懂= =,明知是最水的题目 2.搜懂题目后,比较裸的MST,但还是决定写个题解,虽然没什么可说的,只是来警戒自己,还是要努力读题,YY大法,这也是水平的一个体现! #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <vector> #include &

hdu2098分拆素数和(读题很重要!!!)

分拆素数和 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2098 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 39300    Accepted Submission(s): 17193 Problem Description 把一个偶数拆成两个不同素数的和,有几种拆法呢? Input

HDU 2079 选课时间(题目已修改,注意读题)【母函数】

选课时间(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3250    Accepted Submission(s): 2551 Problem Description 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合.你来帮帮他吧.(xhd认为一样学分的课没区别

选课时间(题目已修改,注意读题)(杭电2079)(母函数)

选课时间(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3024    Accepted Submission(s): 2365 Problem Description 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合.你来帮帮他吧.(xhd认为一样学分的课没区别

HDU 4572 Bottles Arrangement(找规律,仔细读题)

题目 //找规律,123321123321123321…发现这样排列恰好可以错开 // 其中注意题中数据范围: M是行,N是列,3 <= N < 2×M //则猜测:m,m,m-1,m-1,m-2,m-2,……,2,2,1,1求出前m个数字的和就是答案. //发现案例符合(之前的代码第二天发现案例都跑不对,真不知道我当时眼睛怎么了) #include <iostream> #include<stdio.h> #include<string.h> #inclu

HDU2076 夹角有多大(题目已修改,注意读题)【水题】【计算几何】

夹角有多大(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10194    Accepted Submission(s): 4072 Problem Description 时间过的好快,一个学期就这么的过去了,xhd在傻傻的看着表,出于对数据的渴望,突然他想知道这个表的时针和分针的夹角是多少.现在xhd知道的

HDU 2178.猜数字【分析能力练习】【读题能力联系】【8月10】

猜数字 Problem Description A有1数m,B来猜.B每猜一次,A就说"太大","太小"或"对了" . 问B猜n次可以猜到的最大数. Input 第1行是整数T,表示有T组数据,下面有T行 每行一个整数n (1 ≤ n ≤ 30) Output 猜n次可以猜到的最大数 Sample Input 2 1 3 Sample Output 1 7 哎呀妈呀,这题什么意思啊!-----第一感觉 仔细理解理解:比如数据中的3次可以最大猜到7