rwkj 1481

//1481
#include <iostream>
#include <cstdio>
using namespace std;
#define N 50010
int parent[N],sum;
void init()
{
for(int i=1;i<=N;i++)parent[i]=i;
}
int find(int x)
{
if(x==parent[x])return x;
else return find(parent[x]);
}
void marge(int a,int b)
{
int ta = find(a);
int tb = find(b);
if(ta!=tb) {parent[ta]=tb;sum--;}
}
int main()
{
int n,m,i,x,y,k;
while(scanf("%d%d",&n,&m)!=EOF&&(n+m))
{
init(); sum=n;
for(i=0;i<m;i++)
{
scanf("%d%d%d",&k,&x,&y);
if(x>n || y> n)
{sum--;continue;}
if(k==1) marge(x,y);
else if(k=2&&x==y)sum--;
}
printf("%d\n",n-sum);
}
return 0;
}

#include <iostream>
#include <cstdio>
using namespace std;
#define N 50010
int parent[N],sum;
void init()
{
for(int i=1;i<=N;i++)parent[i]=i;
}
int find(int x)
{
if(x==parent[x])return x;
else return parent[x]=find(parent[x]);
}
void marge(int a,int b)
{
int ta = find(a);
int tb = find(b);
if(ta!=tb) {parent[ta]=tb;sum--;}
}
int main()
{
int n,m,i,x,y,k;
while(scanf("%d%d",&n,&m)!=EOF&&(n+m))
{
init(); sum=n;
for(i=0;i<m;i++)
{
scanf("%d%d%d",&k,&x,&y);
if(x>n || y> n)
{sum--;continue;}
if(k==1) marge(x,y);
else if(k==2 && x==y )sum--;
}
printf("%d\n",n-sum);
}
return 0;
}

rwkj 1481,布布扣,bubuko.com

时间: 2024-11-02 03:00:22

rwkj 1481的相关文章

rwkj 1430 二分查找

#include<iostream>using namespace std;int n,k,a[10000]; int binsearch(int low,int high){ int i,len,s;while(low<high) { len=(high+low)/2; for(s=0,i=0;i<n;i++) s+=a[i]/len; if(s>k) low=len+1; else if(s<k) high=len-1; else return len; }}int

1481:Maximum sum

1481:Maximum sum 总时间限制:  1000ms 内存限制:  65536kB 描述 Given a set of n integers: A={a1, a2,..., an}, we define a function d(A) as below: t1 t2 d(A) = max{ ∑ai + ∑aj | 1 <= s1 <= t1 < s2 <= t2 <= n } i=s1 j=s2 Your task is to calculate d(A). 输入

rwkj 1354 圆周长与面积

C++:类与对象2(圆的周长和面积)时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:1038 测试通过:524 描述 使用类编写程序,输入以后圆的半径,计算并显示圆的周长和面积.圆周率取:3.14 输入 输入包含n组测试例, 第1行是测试组数. 第2行--第n+1行为测试数据,每组测数据有1个实数,表示圆的半径. 输出 圆的周长和面积(保留2位小数). 样例输入 34.514.65.5 样例输出 28.26 63.5991.69 669.3234

rwkj 1357 矩形--面积-周长

C++:类与对象5(矩形的面积与周长)时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:349 测试通过:235 描述 定义并测试一个类名为rectangle的矩形类,数据成员为矩形的长和宽,定义2个成员函数分别计算矩形的面积与周长,要求定义构造函数和拷贝构造函数. 输入 输入数据第1行为一个整数T,表示有T组数据.每组数据1行,每行包括矩形的长和宽2个整数. 输出 矩形的面积与周长. 样例输入 23 54 10 样例输出 15 1640 28 #

rwkj 1359 友元:两点距离

C++:友元1(两点之间的距离)时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:674 测试通过:457 描述 定义一个二维平面中的点(point)类,类中的数据成员为点的坐标,然后定义友元函数dist()用来计算两点之间的距离. 将下面的程序1 和程序2填写完整. 程序1 : #include <iostream>#include <iomanip>#include <cmath>using namespace std

rwkj 1363 正方形 长方形 三角形面积

C++:重载函数2(计算面积)时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:370 测试通过:241 描述 定义重载函数area(),分别计算正方形.长方形和三角形的面积. 输入 共计有3行. 第1行有一个实数,为正方形的边长: 第2行有二个实数,为长方形的两条边长: 第3行有三个实数,为三角形的三边长. 输出 正方形.长方形和三角形的面积(保留3位小数). 样例输入 3.54.2 5.623.0 4.0 5.0 样例输出 12.25023.6

rwkj 1287 球的体积

C语言:顺序结构3(球的体积)时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:880 测试通过:610 描述 编写程序,输入球到半径,计算并输出球的体积.圆周率取3.14159. 输入 球到半径. 输出 球的体积.注意:保留3位小数,输出后换行. 样例输入 10 样例输出 4188.787 #include<stdio.h>#define PI 3.14159void main(){ int r; float x; scanf("%d

rwkj 1356 点与矩形

C++:类与对象4(对象成员:点与矩形)时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:467 测试通过:290 描述 定义点类,再定义矩形类,矩形包含2个点,分别表示对角顶点.输入2个顶点的坐标,计算矩形的面积. 输入 输入包含n组测试例, 第1行是测试组数. 第2行--第n+1行为测试数据,每组测数据有4个整数,表示 2个顶点的坐标. 输出 每个矩形的面积. 样例输入 20 0 4 50 7 8 0 样例输出 2056 //1356#incl

rwkj 1327 圆柱体体积

C语言实验一(顺序):题目2.圆柱体体积时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:494 测试通过:196 描述 请编写一个程序实现以下要求: 1.输入圆柱体的半径(radius)和高(high); 2.定义PI为3.14159; 3.求出圆柱体的体积. 输入 输入两个实数,第一个是圆柱体的半径,第二个是圆柱体的高. 输出 输出有三行: 第一行是圆柱体的半径: 第二行是圆柱体的高: 第三行圆柱体的体积. 每一个输出的结果保留到小数点后3位.