珍珠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 -- 图相关推荐

  1. 图的连通性 珍珠(bead)

    珍珠(bead) 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 312     通过数: 140 [题目描述] 有n颗形状和大小都一致的珍珠,它们的重量都不相同. ...

  2. 1384:珍珠(bead)

    1384:珍珠(bead) 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 1183     通过数: 604 [题目描述] 有n颗形状和大小都一致的珍珠,它们的重 ...

  3. wlacm 珍珠BEAD 题解

    题目描述 有n颗形状和大小都一致的珍珠,它们的重量都不相同.n为整数,所有的珍珠从1到n编号.你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量中,该珍珠的重量列(n+1)/2位.下面给出 ...

  4. XYNUOJ 1302 珍珠BEADA

    1302: 珍珠BEAD 时间限制: 1 Sec   内存限制: 128 MB 提交: 6   解决: 6 您该题的状态:已完成 [提交][状态][讨论版] 题目描述      有n颗形状和大小都一致 ...

  5. 珍珠bead_珍珠果酱直播

    珍珠bead Last week I went to see Pearl Jam! It was an amazing experience. I saw them about a year ago ...

  6. 惹某人持续划水的开学第二周(习题+感悟)

    本周宜划水 (一)图论 A - 一笔画问题 题目描述 Input Output Sample Input Sample Output 理解 AC代码 B - 珍珠BEAD 题目描述 Input Out ...

  7. 杨振宁六大数理工作赏析 | 祝贺杨先生百岁华诞

    来源:返朴 撰文:林开亮 我的物理学界同事大多对数学采取功利主义的态度.也许因为受我父亲的影响,我较为欣赏数学.我欣赏数学家的价值观,钦佩数学的优美和力量:它既有战术上的随机应变,又有战略上的深谋远虑 ...

  8. 中国珍珠养殖产业发展现状分析,淡水养殖仍然占据主导地位「图」

    一.珍珠养殖概述 珍珠是一种古老的有机宝石,主要产于珍珠贝类和珠母贝类软体动物体内.珍珠为贝类内分泌作用而生成的含碳酸钙的矿物珠粒,由大量微小的文石晶体集合而成的.种类丰富,形状各异,色彩斑斓. 目前 ...

  9. 信息学奥赛一本通 珍珠

     珍珠(bead) 题目在这个网页吔:点击打开链接 和往常一样,做题之前会胡思乱想: 1.入度和出度解决?样例可以过的嘛--可以过但好像不行Emmm--对!因为你万一只与一个点相连,但是后面的点都是一 ...

最新文章

  1. hdu 2025:查找最大元素(水题,顺序查找)
  2. opencv 检测 键盘_ubuntu+vscode 测试运行opencv
  3. 50-100G大文件的处理办法
  4. linux下手动删除数据库实例
  5. Web开发入门疑问收集(不定期更新)
  6. WINCE 网卡控制
  7. C++ new和malloc的区别
  8. When we first heard of Linux
  9. 字符串,那些你不知道的事 1
  10. ssh中懒加载问题org.hibernate.LazyInitializationException
  11. centos安装phpstudy(小皮)
  12. python例子之一句话求列表中偶数
  13. xbox蓝牙手柄驱动_如何通过蓝牙将Xbox One控制器连接到Windows
  14. 编写一个图片去水印的小工具
  15. 剑指Offer系列(java版,详细解析)38.字符串的排列
  16. C语言之strrchr函数
  17. csgo调出参数_CSGO参数设置
  18. 国内外量化平台发展现状析
  19. Java Log4j和Log4j2的区别
  20. mysql字符集和校对规则

热门文章

  1. 6759字25个APP测试流程以及资料合集【乐搏TestPro】
  2. 简易电商宝贝放大镜效果--jQuery
  3. [生存志] 第45节 晋文公周游入秦国
  4. POI Excel 百分数
  5. 为什么会内存溢出?内存溢出了怎么办?
  6. IC的ESD测试方法
  7. MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
  8. pads单位切换的快捷键_pads快捷键和一些技巧
  9. 【Unity3D入门教程】Unity3D之GUI浅析
  10. electron监听网页_Electron 进程通信