一:成绩

Day1 score=100+100+20

Day2 score=100+30+0

这成绩还是不行啊,仍需继续加油(抱怨一句暴力分有点少#滑稽)

二:题目分析

Day1

T1祖孙询问:

已知一棵 n 个节点的有根树。有 m 个询问。每个询问给出了一对节点的编号 x 和 y,询问 x
与 y 的祖孙关系。

分析:

这道题用一个lca随便就可以水过啦...(我一开始把祖先理解成了父亲orz)

T2比赛:

由 A 中的一个选手与 B 中的一个选手对抗。同一个人不会参加多场比赛,每个人的对手都是随机而等概率的。例如 A 队有 A1 和 A2 两个人,B 队有 B1 和 B2 两个人,那么(A1 vs B1,A2 vsB2)和(A1 vs B2,A2 vs B1)的概率都是均等的 50%。

每个选手都有一个非负的实力值。如果实力值为 X 和 Y 的选手对抗,那么实力值较强的选手所在的队伍将会获得(X-Y)^2 的得分。

求 A 的得分减 B 的得分的期望值。

分析:

这道题推了我半个小时...

我们乍一看就会觉得这是一道数学题,那我们来分析

我们固定好B队的n个人,来对A队进行排列进行一一对应,那么方案总数就是A的全排列(n!)

对于一个Ak,他对应Bj的次数是(n-1)!,怎么理解呢,就是对除了Ak的其他A进行全排列

那么(A[k]-B[j])^2对答案的总贡献=((A[k]-B[j])^2)*(n-1)!/n!=((A[k]-B[j])^2)/n

我们记录(A[k]-B[j])^2为(k,j),

对于一个Ai那么从小到大排好B,用二分查找可以算出小于等于Ai的B有k个,大于Ai的有p个,

那么对答案的贡献=(Ai,B1)+...(Ai,Bk)- ( (Ai,Bk+1) +...+(Ai,Bn) )

=Ai2*(k-p)+(b12+...+bk2)-(bk+12+...+bn2)+2a( (bk+1+...+n) - (b1+...+bk) )

那么我们对bi2和bi分别记一个前缀和即可

总复杂度O(nlogn)

T3数字

一个数字被称为好数字当他满足下列条件:

1. 它有2*n个数位,n是正整数(允许有前导0)。

2. 构成它的每个数字都在给定的数字集合S中。

3. 它前n位之和与后n位之和相等或者它奇数位之和与偶数位之和相等

例如对于n=2,S={1,2},合法的好数字有1111,1122,1212,1221,2112,2121,2211,2222这样8种。

已知n,求合法的好数字的个数mod 999983。

n≤1000,|S|≤10

分析:

考试的时候没有搞出来...想到了dp的部分却没想到组合数学的部分

我们记dp[i][j]为处理到第i个,用的数字和为j,那么dp[i][j]=∑dp[i-1][j-k]

我们看到题目要求是"命题A"或“命题B”,那就等于"命题A"+"命题B"-"命题A"且"命题B"

命题A和命题B显然就是dp[n][j]*dp[n][j](j∈[n*minnum,n*maxnum])

对于"命题A"且"命题B"可以得到的条件是"前n个数中的奇数项和"=="后n个数中的奇数项和",且"前n个数中的偶数项和"=="后n个数中的偶数项和"

那么就是dp[(n+1)/2][j]2*dp[n/2][j]2

所以答案就出来了

Day2

T1工资

聪哥在暑假参加了打零工的活动,这个活动分为 n 个工作日,每个工作日的工资为 Vi。有 m 个结算工钱的时间,聪哥可以自由安排这些时间,也就是说什么时候拿钱,老板说的不算,聪哥才有发言权!(因为聪哥是土豪,他是老板的老板)聪哥不喜欢身上一次性有太多的钱,于是他想安排一下拿钱的时间,使他一次性拿的钱中最大的最小。(最后一天一定要领钱)

分析

二分答案的水题,就不说啦

T2藏妹子之处

今天 CZY 又找到了三个妹子,有着收藏爱好的他想要找三个地方将妹子们藏起来,将一片空地抽象成一个 R 行 C 列的表格,CZY 要选出 3 个单元格。但要满足如下的两个条件:

(1)任意两个单元格都不在同一行。

(2)任意两个单元格都不在同一列。

选取格子存在一个花费,而这个花费是三个格子两两之间曼哈顿 距 离 的 和 ( 如 (x1,y1) 和 (x,y2) 的 曼 哈 顿 距 离 为 |x1-x2|+|y1-y2|)。狗狗想知道的是,花费在 minT 到 maxT 之间的方案数有多少。

答案模 1000000007。所谓的两种不同方案是指:只要它选中的单元格有一个不同,就认为是不同的方案。

分析

我一开始以为是DP。。。

对于20%的数据,我们先在三列里面上下枚举每个点的位置,预先处理好每个竖直长度的个数。

然后再枚举三列,通过之前存下的竖直长度加上枚举的横向长度计算出周长,统计答案。其实只要枚举左右列行,乘以中间的列数即可。

复杂度O(n^3)

对于100%的数据,我们之前是考虑三个点的位置,当然只能三次方,那我们如果枚举矩形的长度和宽度呢?

我们枚举一个矩形(i×j),要保证这个矩形,她最上/下的两行,最左/右的两行必须选,那我们再在中间选一行和一列,选法有(i-2)×(j-2)种

那我们选的三行三列相交出一个3×3的九宫格,填进去的方法就有6种,而这个矩形的位置有(R-i+1)*×(C-j+1)种方法

那i,j对答案的贡献就是(i-2)×(j-2)×(R-i+1)×(C-j+1)×6

复杂度O(n^2)

8.3-8.4NOIP模拟题总结的更多相关文章

  1. poj 1008:Maya Calendar(模拟题,玛雅日历转换)

    Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 64795   Accepted: 19978 D ...

  2. poj 1888 Crossword Answers 模拟题

    Crossword Answers Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 869   Accepted: 405 D ...

  3. CodeForces - 427B (模拟题)

    Prison Transfer Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Sub ...

  4. sdut 2162:The Android University ACM Team Selection Contest(第二届山东省省赛原题,模拟题)

    The Android University ACM Team Selection Contest Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里 ...

  5. 全国信息学奥林匹克联赛 ( NOIP2014) 复赛 模拟题 Day1 长乐一中

    题目名称 正确答案  序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer. ...

  6. UVALive 4222 Dance 模拟题

    Dance 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&pag ...

  7. cdoj 25 点球大战(penalty) 模拟题

    点球大战(penalty) Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/2 ...

  8. Educational Codeforces Round 2 A. Extract Numbers 模拟题

    A. Extract Numbers Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/600/pr ...

  9. URAL 2046 A - The First Day at School 模拟题

    A - The First Day at SchoolTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...

随机推荐

  1. MyBatis3

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: <?xml version="1 ...

  2. iTOP-4418/6818开发板用户使用手册内容有哪些

                    更多内容分享,请继续期待 iTOP-6818开发板与4418开发板共兼容同一底板: 核心板:::::: 尺寸:50mm*60mm 高度:核心板连接器组合高度1.5mm ...

  3. C++自己实现一个String类

    C++自己实现一个String类(构造函数.拷贝构造函数.析构函数和字符串赋值函数) #include <iostream> #include <cstring> using ...

  4. 读spring源码(三)-ClassPathXmlApplicationContext-getBean

    这次主要看了下bean的生成过程,发现个画时序图很好用的软件plantuml,充分发挥程序员的能力,能用代码解决的别叨叨别的

  5. 为什么使用SLF4J?

      每个Java开发人员都知道日志记录对Java应用的重要性,尤其是对服务端应用,而且其中许多人都已经熟悉了各种记录日志的库,比如java.util.logging,Apache的log4j,logb ...

  6. L2-011 玩转二叉树 (25 分) (树)

    链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805065406070784 题目: 给定一棵二叉树的中序遍历和前序 ...

  7. 微信支付errcode:40163,code been used,错误小结

    1.配置时注意,支付平台中的支付授权目录, 注意大小写. 昨天碰到的问题,就是自己跳转时,路径写的全小写.跳转支付页面也能跳转过去,但是log中总是调用两次code,报40163错误.后改成和公总号支 ...

  8. VS2017 性能优化方法

    原文地址:https://www.cnblogs.com/mahatmasmile/p/10394168.html 出处1:https://docs.microsoft.com/zh-cn/visua ...

  9. PC设置局域网打印机

    打印机采用局域网网络连接方式,下面以Windows系统为例说明如何添加此打印机. 将电脑接入局域网 在“控制面板”中打开“设备与打印机”,点击“添加打印机” 在弹出列表中,会自动出现打印机型号,选中它 ...

  10. python学习第34天

    # 互斥锁# 进程之间的数据共享 # 关于数据安全的问题# 进程池(自己了解,后面线程部分还会讲) # from multiprocessing import Pool# 线程的概念 (面试的重点)# ...