珍珠BEAD -- 图
珍珠BEAD
Time limit : 1 sec / Memory limit : 128 MB
Problem Statement
有n颗形状和大小都一致的珍珠,它们的重量都不相同。n为整数,所有的珍珠从1到n编号。你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量中,该珍珠的重量列(n+1)/2位。下面给出将一对珍珠进行比较的办法:
给你一架天平用来比较珍珠的重量,我们可以比出两个珍珠哪个更重一些,在作出一系列的比较后,我们可以将某些肯定不具备中间重量的珍珠拿走。
例如,下列给出对5颗珍珠进行四次比较的情况:
1、珍珠2比珍珠1重 2、珍珠4比珍珠3重 3、珍珠5比珍珠1重 4、珍珠4比珍珠2重
根据以上结果,虽然我们不能精确地找出哪个珍珠具有中间重量,但我们可以肯定珍珠1和珍珠4不可能具有中间重量,因为珍珠2、4、5比珍珠1重,而珍珠1、2、3比珍珠4轻,所以我们可以移走这两颗珍珠。
写一个程序统计出共有多少颗珍珠肯定不会是中间重量。
Input
输入文件第一行包含两个用空格隔开的整数N和M,其中1<=N<=99,且N为奇数,M表示对珍珠进行的比较次数,接下来的M行每行包含两个用空格隔开的整数x和y,表示珍珠x比珍珠y重。
Output
输出文件仅一行包含一个整数,表示不可能是中间重量的珍珠的总数。
Sample Input 1
5 4
2 1
4 3
5 1
4 2
Sample Output 1
2
My Answer
这题思路很简单,就是把能比较轻重的都比一边,统计比第i个重的个数是否超过一半,超过一半这颗珍珠就可以排除,答案+1,然后轻的再统计一遍。用二维数组来存储两个珍珠间的轻重关系, a[i][j] = 1 表示第i个比第j个重,既第j个比第i个轻。如果a[i][k] = 1 并且 a[k][j] = 1 ,那么就可以推出a[i][j] = 1
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000 + 10;
int n, m;
int a[maxn][maxn];int main(){cin >> n >> m;memset(a, 0, sizeof(a)); // 初始化为0for(int i = 0; i < m; i++){int x, y;cin >> x >> y;a[x][y] = 1; //1 代表第x个比第y个重, 也可以表示第y个比第x个轻}for(int k = 1; k <= n; k++){for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++){if(a[i][k] && a[k][j]) a[i][j] = 1; //如果第i个比第k个重,同时第k个比第j个重,那么就可以推出第i个比第j个重}}}int t, ans = 0;for(int i = 1; i <= n; i++){t = 0;//统计比第i个轻的个数,如果数量大于总个数的一半,那就不可能是中间重量,答案+1for(int j = 1; j <= n; j++){if(a[i][j]) t++;}if(t >= (n+1)/2) ans++;t = 0;//统计比第i个重的个数for(int j = 1; j <= n; j++){if(a[j][i]) t++;}if(t >= (n+1)/2) ans++;}cout << ans << "\n";return 0;
}/**************************************************************Problem: 1193Language: C++Result: 正确Time:4 msMemory:5696 kb
****************************************************************/
珍珠BEAD -- 图相关推荐
- 图的连通性 珍珠(bead)
珍珠(bead) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 312 通过数: 140 [题目描述] 有n颗形状和大小都一致的珍珠,它们的重量都不相同. ...
- 1384:珍珠(bead)
1384:珍珠(bead) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 1183 通过数: 604 [题目描述] 有n颗形状和大小都一致的珍珠,它们的重 ...
- wlacm 珍珠BEAD 题解
题目描述 有n颗形状和大小都一致的珍珠,它们的重量都不相同.n为整数,所有的珍珠从1到n编号.你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量中,该珍珠的重量列(n+1)/2位.下面给出 ...
- XYNUOJ 1302 珍珠BEADA
1302: 珍珠BEAD 时间限制: 1 Sec 内存限制: 128 MB 提交: 6 解决: 6 您该题的状态:已完成 [提交][状态][讨论版] 题目描述 有n颗形状和大小都一致 ...
- 珍珠bead_珍珠果酱直播
珍珠bead Last week I went to see Pearl Jam! It was an amazing experience. I saw them about a year ago ...
- 惹某人持续划水的开学第二周(习题+感悟)
本周宜划水 (一)图论 A - 一笔画问题 题目描述 Input Output Sample Input Sample Output 理解 AC代码 B - 珍珠BEAD 题目描述 Input Out ...
- 杨振宁六大数理工作赏析 | 祝贺杨先生百岁华诞
来源:返朴 撰文:林开亮 我的物理学界同事大多对数学采取功利主义的态度.也许因为受我父亲的影响,我较为欣赏数学.我欣赏数学家的价值观,钦佩数学的优美和力量:它既有战术上的随机应变,又有战略上的深谋远虑 ...
- 中国珍珠养殖产业发展现状分析,淡水养殖仍然占据主导地位「图」
一.珍珠养殖概述 珍珠是一种古老的有机宝石,主要产于珍珠贝类和珠母贝类软体动物体内.珍珠为贝类内分泌作用而生成的含碳酸钙的矿物珠粒,由大量微小的文石晶体集合而成的.种类丰富,形状各异,色彩斑斓. 目前 ...
- 信息学奥赛一本通 珍珠
珍珠(bead) 题目在这个网页吔:点击打开链接 和往常一样,做题之前会胡思乱想: 1.入度和出度解决?样例可以过的嘛--可以过但好像不行Emmm--对!因为你万一只与一个点相连,但是后面的点都是一 ...
最新文章
- hdu 2025:查找最大元素(水题,顺序查找)
- opencv 检测 键盘_ubuntu+vscode 测试运行opencv
- 50-100G大文件的处理办法
- linux下手动删除数据库实例
- Web开发入门疑问收集(不定期更新)
- WINCE 网卡控制
- C++ new和malloc的区别
- When we first heard of Linux
- 字符串,那些你不知道的事 1
- ssh中懒加载问题org.hibernate.LazyInitializationException
- centos安装phpstudy(小皮)
- python例子之一句话求列表中偶数
- xbox蓝牙手柄驱动_如何通过蓝牙将Xbox One控制器连接到Windows
- 编写一个图片去水印的小工具
- 剑指Offer系列(java版,详细解析)38.字符串的排列
- C语言之strrchr函数
- csgo调出参数_CSGO参数设置
- 国内外量化平台发展现状析
- Java Log4j和Log4j2的区别
- mysql字符集和校对规则