NOI2015 Day1
NOI2015 Day1
程序自动分析
题目描述:给出等式或不等式\(n\)条,问\(n\)条式子是否成立。
solution:
用并查集处理等式,在判断不等式是否成立。
时间复杂度:\(O(n)\) (hash)
软件包管理器
题目描述:维护一棵树,支持两种操作:
1、询问点到根的点权和,并将路径上的点的权值修改为1
2、询问点的子树的点权和,并将子树的点的权值修改为0
solution:
树链剖分可以很好的解决第一种操作,那第二种操作也可以用树链剖分吗?
可以,先求出重儿子,然后用\(dfs\)建线段树,\(dfs\)时先\(dfs\)重儿子,再\(dfs\)其他儿子,这样既能保证重链在线段树上是连续的,每棵子树在线段树上也是连续的。
时间复杂度:\(O(nlogn)\)
寿司晚宴
题目描述:设正整数集合$A,B, A \cap B = Ø \(,使\)\forall x \in A, \forall y \in B,\(有\)x \in [2, n], y \in [2, n], (x, y)=1\(,给定\)n\(,求集合\)A,B\(对的方案数。\)A,B\(可以为\)Ø$
solution:
\(n \leq 500, \sqrt{n} < 23\),小于\(\sqrt{n}\)的质数只有8个(暂且称为小质数,其它质数称为大质数),所以可以用二进制来表示每个数拥有的小质数因子集合。每个数最多只会有一个大质数因子(大质数 $ >\sqrt{n} \(),所以比较好处理。设状态\)f[i][j][k]\(,表示做完第\)i\(个大质数,\)A\(拥有小质数集为\)j\(,\)B\(拥有小质数集为\)k\($(j \& k=0)\) 的方案数。\(f[0]\)表示没有大质数,所以直接对没有大质数因子的数dp就好了。对于有大质数因子,枚举具有该因子的数\(p\),\(p\)拥有的小质数因子集为\(z\) 转移方程如下:
$ f[i][j][k]=d[j][k][0]+d[j][k][1]+f[i-1][j][k] $
$ d[j | z][k][0]=d[j][k][0]+f[i-1][j][k] $
$ d[j][k | z][1]=d[j][k][1]+f[i-1][j][k] $
先解释第二、三条方程,对于\(d[j][k][q]\),\(A\)拥有小质数集为\(j\),\(B\)拥有小质数集为\(k\)的方案数,当\(q=0\)时表示将\(p\)放入\(A\),当\(q=1\)时表示将\(p\)放入\(B\). 其实就是对拥有该大质数因子的数进行dp。然后将dp的结果用一个总的\(f[i][j][k]\)进行dp(前i个大质数因子的dp)
时间复杂度:\(O(2^{16}n)\)
NOI2015 Day1的更多相关文章
- 2015.7.17( NOI2015 day1 )
今天早起做了NOI2015网络同步赛.... 最近NOI是越来越向NOIP靠拢了....但是我还是不会做..... 第一题:程序自动分析 先离散化一下..然后最多就剩20w个数 , 不等于就存起来.. ...
- noi2015 day1 T2软件包管理器
noi2015 软件包管理器 Description Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软 ...
- noi往届题目泛做
noi2015 Day1 t1 程序自动分析 离散化+并查集 t2 软件包管理器 裸树链剖分 t3 寿司晚宴 状压dp Day2 t1 荷马史诗 哈夫曼多叉树 t2 品酒大会 后缀数组按照hei ...
- noi2015的回忆和教训
前几天偶然打开了bzoj的rank list,突然发现——我竟然掉出了第一版!!! 自从我5月还是6月刷进第一版之后,我曾经天真的以为大概半年之内我还能保留在第一版内吧. 结果仅仅短短的4个月,我就已 ...
- NOI2015考试小结
这次NOI2015有幸获得金牌考进了国家集训队,意味着我的OI退役时间既省选之后有延迟了好几个月,又有了新的目标吧. 先说一下考试之外的感受吧,学军宿舍很牛X,接待NOIers而不提供插座,唯一可以用 ...
- NOI2015滚粗记
我的第一次也是最后一次NOI 好像写的晚了许多……可能一谈到退役总会有些伤感,并不愿去面对…… 一路走来已有5年,虽然我总在说“其实我好好学的时间只有半年”,但那也不过是给自己是蒟蒻找的借口吧...一 ...
- BZOJ 4199: [Noi2015]品酒大会 [后缀数组 带权并查集]
4199: [Noi2015]品酒大会 UOJ:http://uoj.ac/problem/131 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品 ...
- BZOJ 4196: [Noi2015]软件包管理器 [树链剖分 DFS序]
4196: [Noi2015]软件包管理器 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1352 Solved: 780[Submit][Stat ...
- NOIp2016 Day1&Day2 解题报告
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
随机推荐
- PHP中将对数据库的操作,封装成一个工具类以及学会使用面向对象的方式进行编程
<?php class SqlTool { //属性 private $conn; private $host="localhost"; private $user=&quo ...
- CSS自学笔记(11):CSS3背景和边框
CSS3 背景 在CSS3中新增了多个关于背景的属性,可以让我们对背景有了更多更好的操作,减少用第三方工具对背景图片进行修改美化. CSS3中主要是通过定义backgrounp中的各个属性来控制背景( ...
- Linux系统针对网卡中断的优化处理
摘要: 中断: 当网卡接收到数据包后,会触发硬中断,通知CPU来收包.硬中断是一个CPU和网卡交互的过程.这其实会消耗CPU资源.特别是在使用速度极快的万兆网卡 之后,大量的网络交互使得CPU很大一部 ...
- Oracle EBS-SQL (PO-5):采购订单控制信息查询.sql
select distinct pla.po_header_id, --pha.type_lookup_code, pha.segment1 采购订单号, appf.full_name ...
- Oracle EBS-SQL (PO-1):检查供货比例异常.sql
select distinct msr.sourcing_rule_name 名称 , msi.description ...
- 验证码识别image/pdf to string 开源工具
http://blog.csdn.net/jollyjumper/article/details/18748003
- Java学习-练习1
题目描述: 吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到, 而这对数字各包含乘积的一半位数的数字,其中最初的数字中可以 选取的数字可以任意排序,以两个0结尾的数字是不允许的,例如,下 面的 ...
- string和整数转换
tostring(int) fromstring(string ) c++11新方式 stod Convert string to double (function template ) stold ...
- Network()
Network Time Limit : 2000/1000ms (Java/Other) Memory Limit : 60000/30000K (Java/Other) Total Submi ...
- .NET,你忘记了么?(八)—— 从dynamic到特性误用 [转]
1. 摘要 每个程序员都想写出漂亮的代码,但是什么是漂亮,这个我想每个人都有着自己的看法.那么我就说几种典型的想法: A. 写出别人看不懂的代码,让别人觉得很高深. B. 写出简短的代码 C. 用最新 ...