NOI2011 Day2
NOI2011 Day2
道路修建
题目描述:给出一棵树,求每条边的两边的端点数的差乘边权之和。
solution:
题目可能描述得不太清楚,如图:

对于虚边,如果边权为10,两边的端点数之差为2,这条边对答案的贡献为20.
所以这道题就是求子树点数。
时间复杂度:\(O(n)\)
NOI嘉年华
题目描述:给出\(n\)个活动,每个活动有起始时间和终止时间,把这\(n\)个活动分在两个会场进行(也可以不举行某些活动),每个会场的活动的时间段可以相交,两个会场的活动的时间段不可以有交集。求活动较少的会场的活动最大值,以及在第\(i\)个活动一定要举行的情况下,活动较少的会场的活动最大值。
solution:
因为有两个会场,所以其中一个会场的活动数通过枚举,再求另一个会场的活动最大值会比较方便。
设\(f[i][j]\)表示到\(i\)时刻,A会场有\(j\)个活动,B会场活动数的最大值。\(sum(i, j)\)为时刻\(i\)到时刻\(j\)所包含的活动数。那么:

第一问的答案就是

设\(g[i][j]\)表示在第\(i\)时刻后,A会场有\(j\)个活动,B会场活动数的最大值。那么:

设\(\varphi [i][j]\)表示时刻\(i\)到时刻\(j\)包含的活动一定要举行,活动较少的会场的活动最大值。那么:

对于每一个活动,设起始时间为\(L_i\), 终止时间为\(R_i\),那么答案就是

对于固定的\(i, j\),设

当\(x\)增大时,如果\(y\)也增大, 那么左式(逗号左面)会增大,右式(逗号右面)会减少,因为是取最小值,所以贡献不大。

如果\(y\)减小,那么左式和右式都比较平衡,答案不会太差。

脑补……
时间复杂度:\(O(n^3)\)
兔兔与蛋蛋游戏
题目描述:这个游戏是在一个 n 行 m 列的棋盘上进行的。游戏开始之前,棋盘上有一个格子是空的,其它的格子中都放置了一枚棋子,棋子或者是黑色,或者是白色。
每一局游戏总是兔兔先操作,之后双方轮流操作,具体操作为:
1、兔兔每次操作时,选择一枚与空格相邻的白色棋子,将它移进空格。
2、蛋蛋每次操作时,选择一枚与空格相邻的黑色棋子,将它移进空格。
第一个不能按照规则操作的人输掉游戏。
给出一局兔兔输的操作过程,找出犯错的地方:在这次操作前兔兔有必胜策略,而这次操作后蛋蛋有必胜策略。
solution:

\(M(x, y)\)表示哪个棋移到空格。
从操作可以看出:
1、路径不能自交(从某一个点出发走回这个点需要偶数步,第一步的颜色与偶数步的颜色不同,所以不可能自交)
2、如果把初始空格看做黑棋,则路径为一条黑白相间的路径。
由性质二可以按黑棋和白棋构成二分图(黑左白右),相邻的黑棋与白棋连边。
判断兔兔的某一步是否必胜,则需判断这一步的黑棋对应的点是否一定在最大匹配中,如果是,则必胜,否则必败。

如图\(O\)一定在最大匹配中,那么从\(O\)出发,一定是实虚相间的边,实边为匹配边,一定存在,而右边的点不一定有虚边回到左边,所以必胜。
如果像\(P\)一样不一定在最大匹配中,那么\(P\)会经虚边走到右边,而从右边一定会有实边走回左边,虚边不一定有,所以必败。
判断蛋蛋的某一步是否必胜,则需判断这一步的白棋对应的点是否能到达黑棋的一个必败态,如果是,则必胜,否则必败。
所以只要判断与该白棋相连的黑棋是否必胜即可。
判断某点是否在最大匹配中,只需做一次最大匹配,然后把该点删掉,再做一次最大匹配,判断两次的最大匹配是否相等即可。
因为每次只删一个点,所以只要重新匹配这个点相连的那个点就好了,不要再做一次最大匹配。
时间复杂度:\(O(knm)\)
NOI2011 Day2的更多相关文章
- NOI2011道路修建
		
2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1974 Solved: 550[Submit][Status ...
 - BZOJ 2435: [Noi2011]道路修建( dfs )
		
NOI的水题...直接一遍DFS即可 ------------------------------------------------------------------------- #includ ...
 - 2435: [Noi2011]道路修建
		
2435: [Noi2011]道路修建 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2188 Solved: 639[Submit][Status ...
 - 【BZOJ】【2435】【NOI2011】道路修建
		
DFS/DP 本来以为是一道傻逼题,然而跪了好久……一直RE…… 直接dfs就好了……x->y val=c : ans+=abs(n-size[y]-size[y])*c; 然而为啥会一直R ...
 - 【BZOJ 2437】 2437: [Noi2011]兔兔与蛋蛋 (博弈+二分图匹配**)
		
未经博主同意不得转载 2437: [Noi2011]兔兔与蛋蛋 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 693 Solved: 442 Des ...
 - 【BZOJ 2436】 2436: [Noi2011]Noi嘉年华 (区间DP)
		
2436: [Noi2011]Noi嘉年华 Description NOI2011 在吉林大学开始啦!为了迎接来自全国各地最优秀的信息学选手,吉林大学决定举办两场盛大的 NOI 嘉年华活动,分在两个不 ...
 - 【从零开始学BPM,Day2】默认表单开发
		
[课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...
 - BZOJ 2434: [Noi2011]阿狸的打字机 [AC自动机 Fail树 树状数组 DFS序]
		
2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 2545 Solved: 1419[Submit][Sta ...
 - NOIp2016 Day1&Day2 解题报告
		
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
 
随机推荐
- Scala基础入门-1
			
首先需要Scala开发环境的搭建,网上自己找教程. 声明常量与变量 val foo = 0 // 常量 var bar = 0 // 变量 在Scala中,更加鼓励使用val来进行声明,也就是推荐使用 ...
 - (asp.net MVC学习)System.Web.Mvc.HtmlHelper学习及使用
			
在ASP.NET MVC框架中没有了自己的控件,页面显示完全就回到了写html代码的年代.还好在asp.net mvc框架中也有自带的HtmlHelper和UrlHelper两个帮助类.另外在MvcC ...
 - Gentoo Linux 学习笔记1
			
Gentoo Linux是一个基于portage进行包管理的Linux发行版,最早版本始于2002年.其官方官网为http://www.gentoo.org 目前,Gentoo Linux已 ...
 - linux学习之(四)-用户、组的操作,给文件文件夹设置组,更改目录权限、文件权限
			
命令帮助查看: man 命令(查看一个命令的详细帮助信息) 例:man useradd 或者用 -h 格式 命令 -h(查看一个命令的简要帮助) 例:useradd -h 用户: 在user ...
 - hdu 4602 Partition(矩阵快速幂乘法)
			
Problem Description Define f(n) , we have =+++ =++ =++ =++ =+ =+ =+ = totally ways. Actually, we wil ...
 - 【Stackoverflow好问题】Java += 操作符实质
			
问题 直到今天,我都一直以为: i += j 等同于 i = i + j; 但如果有: int i = 5; long j = 8; 这时 i = i + j不能编译.但i += j却能够编译.这说明 ...
 - ruby on rails出现的问题ActiveModel::ForbiddenAttributesError
			
首先分清楚我们在搞rails时.看资料和所使用的环境的版本号是否同样.看的资料是rails3.2,电脑配置的环境是4.0,就会出现这样的安全防范措施的问题. 这类问题大多出如今new或者create两 ...
 - Egret初体验–躲避类小游戏
			
下面简单介绍一下我这个游戏:基本上就3个画面(准备再添加一个胜利的界面)开始画面,一个按钮,点击进入游戏游戏画面,滚动的背景,触摸移动的老鹰,从天而降的翔,以及右上角的时间条结束画面,显示结果,关注按 ...
 - js split函数用法总结
			
一.split定义:split() 方法用于把一个字符串分割成字符串数组, 返回值: 一个字符串数组. 二.基本用法:stringObject.split(separator,howmany) 1.参 ...
 - PHP程序效率优化
			
1.在可以用file_get_contents替代file.fopen.feof.fgets等系列方法的情况下,尽量用 file_get_contents,因为他的效率高得多!但是要注意file_ge ...