Summary

  今天题目总体不是难,但是分数很低,只有100+10+30,其中第二题还是以前做过的,第一题设计数论,而且以前做过同一个类型的题目,比赛推了很长时间。第三题时以前做过的原题,是贪心没学好啊!方法也不够周到,数据看得不仔细。

Problem

T1 可见点数

题目大意

  我更改了一下,但是求的东西是一样的。已知有n*n个人在一个n*n网络的格点上,有个人在(1,1)的位置,问他能看到多少个人的脸,不包括自己。

想法

  已知一个定理,说得笼统一点,(x,y)和(x+a,y+b)点连一条边,其中经过的整点数(不包括(x+a,y+b),包括(x,y)),就是Gcd(a,b)的值,我不会证,证了也看不懂在这里就不证了

  那么根据这个定理,我们得出,这道题其实就是求(x,y)~(1,1)连一条边(x=1~n,y=1~n),问问多少条边之间没有整点(包括(1,1),不包括(x,y),后面如此)

  根据上面的定理,也就是说,求Gcd(x-1,y-1)=1(x=1~n,y=1~n)的个数,这样显然可以得到40分

  仔细观察我们可以得出,Gcd(x-1,y-1)可以转化成2φ(i)(i=2~n-1)再加上特殊的2个点((2,1),(1,2)),最后再加上1个点((2,2)),就是答案了

  求φ的时候,一定要加优化

T2 射击

题目大意

  两人决定用弹弓打破社区里的一些窗户,但是弹弓每秒只能彻底打破一扇窗户。而且如果某户窗户的主人回来了的话,他们就不能进行破坏了。打破不同的窗户获得的快乐值可能不同,现在他们想知道在能活着的情况下能够获得的最大快乐值。

想法

  这道题以前也做过,比赛想了很多鸟不拉屎,牛头不对马嘴的贪心,结果怎么弄都有反例,巧的是,也跟正解一样使用了堆

  按时间从小到大排序,当前堆的元素个数为时间,如果时间符合条件的,插入堆,时间不符合条件的,看看它是否比堆中元素最小值大,如果大的话,就替换,也就是不选之前的,选之后的。

  最后的价值,就是堆的元素之和

  注意判断负数,注意类型,注意快排超时。

T3 创世纪

题目大意

  给出N个点,每个点有且只有一个被其限制的点,要求选出一个最大的点集,使得每一个集合内的点都有一个集合外的点限制它。

想法

  贪心。找出所有没有入度的点,那么这些点必定不能选入集合中,我们沿着这些点上溯,将可以选进集合的点都选进集合。这里“可以选进”的定义为存在一个没有被选进集合的上一个,连着它的。于是环上就会有若干个由树上决定它要选进集合的点。我们将环按照已选入集合的点来分裂成若干段,每一段按照原来的贪心方法来贪心即可。

  环的话,个数就是环中元素整除2。

  上面说得难懂,几句话,就是

  把入度为0的加入队列,将他们连着的点加入集合,然后再将他们连着的点,在连着的点加入队列,然后删掉入度为0的点连着的边

  一直这么做

  结果就是集合点的个数,加上每个环,每个环个数整除2,的和,就是答案。

2017.07.10【NOIP提高组】模拟赛B组的更多相关文章

  1. 2017.1.16【初中部 】普及组模拟赛C组总结

    2017.1.16[初中部 ]普及组模拟赛C组 这次总结我赶时间,不写这么详细了. 话说这次比赛,我虽然翻了个大车,但一天之内AK,我感到很高兴 比赛 0+15+0+100=115 改题 AK 一.c ...

  2. 2018.12.30【NOIP提高组】模拟赛C组总结

    2018.12.30[NOIP提高组]模拟赛C组总结 今天成功回归开始做比赛 感觉十分良(zhōng)好(chà). 统计数字(count.pas/c/cpp) 字符串的展开(expand.pas/c ...

  3. NOIP2017提高组模拟赛 10 (总结)

    NOIP2017提高组模拟赛 10 (总结) 第一题 机密信息 FJ有个很奇怪的习惯,他把他所有的机密信息都存放在一个叫机密盘的磁盘分区里,然而这个机密盘中却没有一个文件,那他是怎么存放信息呢?聪明的 ...

  4. ZROI提高组模拟赛05总结

    ZROI提高组模拟赛05总结 感觉是目前为止最简单的模拟赛了吧 但是依旧不尽人意... T1 有一半的人在30min前就A掉了 而我花了1h11min 就是一个简单的背包,我硬是转化了模型想了好久,生 ...

  5. NOIP2017提高组 模拟赛15(总结)

    NOIP2017提高组 模拟赛15(总结) 第一题 讨厌整除的小明 [题目描述] 小明作为一个数学迷,总会出于数字的一些性质喜欢上某个数字,然而当他喜欢数字k的时候,却十分讨厌那些能够整除k而比k小的 ...

  6. NOIP2017提高组 模拟赛13(总结)

    NOIP2017提高组 模拟赛13(总结) 第一题 函数 [题目描述] [输入格式] 三个整数. 1≤t<10^9+7,2≤l≤r≤5*10^6 [输出格式] 一个整数. [输出样例] 2 2 ...

  7. NOIP2017提高组模拟赛 9 (总结)

    NOIP2017提高组模拟赛 9 (总结) 第一题 星星 天空中有N(1≤N≤400)颗星,每颗星有一个唯一的坐标(x,y),(1≤x,y ≤N).请计算可以覆盖至少K(1≤K≤N)颗星的矩形的最小面 ...

  8. NOIP2017提高组模拟赛5 (总结)

    NOIP2017提高组模拟赛5 (总结) 第一题 最远 奶牛们想建立一个新的城市.它们想建立一条长度为N (1 <= N <= 1,000,000)的 主线大街,然后建立K条 (2 < ...

  9. NOIP2017提高组模拟赛4 (总结)

    NOIP2017提高组模拟赛4 (总结) 第一题 约数 设K是一个正整数,设X是K的约数,且X不等于1也不等于K. 加了X后,K的值就变大了,你可以重复上面的步骤.例如K= 4,我们可以用上面的规则产 ...

  10. NOIP2017提高组模拟赛 8(总结)

    NOIP2017提高组模拟赛 8(总结) 第一题 路径 在二维坐标平面里有N个整数点,Bessie要访问这N个点.刚开始Bessie在点(0,0)处. 每一步,Bessie可以走到上.下.左.右四个点 ...

随机推荐

  1. C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why?

    C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why? 简单粗暴的答案:存在Cache机制! 稍微啰嗦一点:CPU访问内存(读/写,遍历数组的话主要是读) ...

  2. 报错ERR_CONNECTION_REFUSED,如何解决(原创)

    当我访问我的一个后天地址的时候,突然出现了ERR_CONNECTION_REFUSED,但是之前是可以访问的. 我先ping了下这个网址,发现是OK的 然后我想可能是80端口有问题,也就是说可能是WE ...

  3. C#连接Oracle错误:OCIEnvCreate 失败,返回代码为 -1

    处理某些数据需要从Oracle里读取数据 因为数据不多,简单方便直接用 System.Data.OracleClient 添加引用,写sql语句一气呵成,运行立刻报错 从没见过这错误啊… 上网搜索之… ...

  4. [转] 浅析JavaScript设计模式——发布-订阅/观察者模式

    前一段时间一直在写CSS3的文章 一直都没写设计模式 今天来写写大名鼎鼎观察者模式 先画张图 观察者模式的理解 我觉得还是发布-订阅模式的叫法更容易我们理解 (不过也有的书上认为它们是两种模式……)  ...

  5. EF连接MySql数据库

    Windows要想EF连接MySql,首先要安装两个应用程序 mysql-connector-net-6.8.8.msimysql-for-visualstudio-1.2.7.msi 项目还需要两个 ...

  6. JS元素意外点击元素消失

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 51Nod1253 Kundu and Tree 容斥原理

    原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1253.html 题目传送门 - 51Nod1253 题意 树包含 N 个点和 N-1 条边.树的边有 ...

  8. 初窥Java之四

    一.条件判断之if判断 语法格式:if(结果为布尔类型的结果值){ 功能执行语句; }else if(结果为布尔类型的结果值){ 功能执行语句; } ....{ }else{ 功能执行语句: } 注意 ...

  9. 实现Java简单继承

    面向对象练习-简单继承 一.完成教师类的创建 说明: id 代表身份证号 name 表示姓名 birth 表示出生日期 title 表示职称(讲师,副教授,教授等) 二.完成学生类的创建 说明: ma ...

  10. CodeForces 161D Distance in Tree【树形DP】

    <题目链接> 题目大意:一颗无向无环树,有n个顶点,求其中距离为k的点对数是多少,(u,v)与(v,u)为同一点对. #include <cstdio> #include &l ...