BEAD

  • 源程序名 BEAD.???(PAS,C,CPP)
  • 可执行文件名 BEAD.EXE
  • 输入文件名 BEAD.IN
  • 输出文件名 BEAD.OUT
  • 时间限制 1S
  • 内存限制 128MB

有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轻,所以我们可以移走这两颗珍珠。

写一个程序统计出共有多少颗珍珠肯定不会是中间重量。

输入

输入文件第一行包含两个用空格隔开的整数N和M,其中1<=N<=99,且N为奇数,M表示对珍珠进行的比较次数,接下来的M行每行包含两个用空格隔开的整数x和y,表示珍珠x比珍珠y重。

输出

输出文件仅一行包含一个整数,表示不可能是中间重量的珍珠的总数。

样例

BEAD.IN

5 4

2 1

4 3

5 1

4 2

BEAD.OUT

2

题解

一个数是中位数必须满足大于或等于它的数的个数与小于等于它的数的个数。由于大小比较对于实数集是满足传递性的。于是我们考虑建图。若\(a\le b\)则\(b\)向\(a\)连一条有向边。则\(a\le b\)的充要条件为存在路径\(b\to a\)。若已知比\(a\)大的数大于\(\frac{n}{2}\)或已知比\(a\)小的数小于\(\frac{n}{2}\)。那么\(a\)一定不是中位数。

于是建图后用floyd求出两点之间是否连通即可。

我的代码

#include <cstdio>
#include <cctype> #define dd c=getchar()
template <class T>
inline void read(T &x)
{
x=0;T dd;bool f=0;
for(;!isdigit(c);dd)if(c=='-')f=1;
for(;isdigit(c);dd) x=(x<<1)+(x<<3)+(c^48);
if(f)x=-x;return;
}
#undef dd bool mmap[105][105];
int son[105],fa[105]; int main()
{
freopen("BEAD.in","r",stdin);
freopen("BEAD.out","w",stdout);
int n,m;read(n);read(m);
for(int i=1;i<=m;++i)
{
int a,b;read(a);read(b);
mmap[a][b]=1;//a->b连边
}
for(int k=1;k<=n;++k)
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(mmap[k][j]&&mmap[i][k]) mmap[i][j]=1;//floyd求图的连通性
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(mmap[i][j])son[i]++,fa[j]++;
//记录每个节点已确定比它大(fa)于比他小(son)的数的个数
int t=n>>1,ans=0;
for(int i=1;i<=n;++i)if(fa[i]>t||son[i]>t)ans++;
printf("%d",ans);
fclose(stdin);fclose(stdout);
return 0;
}

20180414模拟赛T1——BEAD的更多相关文章

  1. 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解

    今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...

  2. 20180610模拟赛T1——脱离地牢

    Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...

  3. NOIP欢乐模拟赛 T1 解题报告

    小澳的方阵 (matrix.cpp/c/pas) [题目描述] 小澳最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的小澳打算在电脑上还原这个伟大的布局. 他努力钻研,发现秦始皇布置兵马俑 ...

  4. [模拟赛] T1 高级打字机

    Description 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序,支持如下3种操作: 1.T x:在文章末尾打下一个小 ...

  5. 2019.2.25 模拟赛T1【集训队作业2018】小Z的礼物

    T1: [集训队作业2018]小Z的礼物 我们发现我们要求的是覆盖所有集合里的元素的期望时间. 设\(t_{i,j}\)表示第一次覆盖第i行第j列的格子的时间,我们要求的是\(max\{ALL\}\) ...

  6. [NOIP2018校模拟赛]T1 阶乘

    题目: 描述 有n个正整数a[i],设它们乘积为p,你可以给p乘上一个正整数q,使p*q刚好为正整数m的阶乘,求m的最小值. 输入 共两行. 第一行一个正整数n. 第二行n个正整数a[i]. 输出 共 ...

  7. [NOIP2018校模拟赛]T1聚会 party

    题目链接: 聚会 分析: 设每个点到1号点的距离为dist_{i},每个点的权值为x_{i},目标点到1号点的距离为dist,权值为x,那么对于每一次查询,我们讨论三种情况: ① 目标家庭在区间左边( ...

  8. 【2019.8.15 慈溪模拟赛 T1】插头(plugin)(二分+贪心)

    二分 首先,可以发现,最后的答案显然满足可二分性,因此我们可以二分答案. 然后,我们只要贪心,就可以验证了. 贪心 不难发现,肯定会优先选择能提供更多插座的排插,且在确定充电器个数的情况下,肯定选择能 ...

  9. 【2019.7.20 NOIP模拟赛 T1】A(A)(暴搜)

    打表+暴搜 这道题目,显然是需要打表的,不过打表的方式可以有很多. 我是打了两个表,分别表示每个数字所需的火柴棒根数以及从一个数字到另一个数字,除了需要去除或加入的火柴棒外,至少需要几根火柴棒. 然后 ...

随机推荐

  1. c# winform richtextbox控制每行颜色 + 滚动条始终滚动到最底部

    /// <summary> /// 输出 /// </summary> /// <param name="content"></param ...

  2. js密码加密

    1.base64加密:在页面中引入base64.js文件,调用方法为: <!DOCTYPE HTML> <html> <head> <meta charset ...

  3. Linux 就该这么学 CH09 使用ssh服务管理远程主机

    1 .配置网络服务 1)配置网络参数   五种配置网络的方法:命令行,编译网络配置文件,nmtui(旧版ui界面),nm-connection-edit(新版ui),VM虚拟机右上角图标等.  这里配 ...

  4. eclipse中正确创建Django项目

    本教程只说明eclipse中django项目的创建,不涉及django相关开发内容: 1."File" -> "New" -> "Othe ...

  5. Python-06-函数

    一.函数的定义 函数是第一类对象,即函数可以当作数据传递 #1 可以被引用 #2 可以当作参数传递 #3 返回值可以是函数 #3 可以当作容器类型的元素 1. 定义方式 def 函数名(参数1,参数2 ...

  6. SQL分类之DDL:操作数据库表

    DDL:操作数据库表 1.操作数据库:CRUD 1.C(Create):创建 创建数据库: create database 数据库名称 创建数据库,判断不存在,再创建: create database ...

  7. Java四种权限修饰符 在创建类中的使用

    四种权限修饰符 Java中有四种权限修饰符 public > protected > (default) >private 同一个类(我自己) YES YES YES YES同一个包 ...

  8. 【数据库】Mysql配置参数

    vim /ect/my.cnf 使用命令打开mysql的配置文件. 加入以下参数 [mysql] default-character-set=utf8 [mysqld] lower_case_tabl ...

  9. [转] Vue原理解析——自己写个Vue

    一.Vue对比其他框架原理 Vue相对于React,Angular更加综合一点.AngularJS则使用了“脏值检测”. React则采用避免直接操作DOM的虚拟dom树.而Vue则采用的是 Obje ...

  10. [個人紀錄] git 設定

    -- git history git config --global alias.history=log --graph --all --pretty=format:'%C(bold blue)%H% ...