Topcoder口胡记 SRM 562 Div 1 ~ SRM 592 Div 1

传送门:https://284914869.github.io/AEoj/index.html

Topcoder SRM 562 Div 1 - Problem 1000 InducedSubgraphs

当K*2<=N的时候,显而易见的是编号为i(K<=i<=N-K+1)的点一定会形成一条链。

枚举合法的这样的链,剩下的暴力dp吧。

当K*2>N的时候,显而易见的是编号为i(N-K+1<=i<=K)的点一定会形成一个联通快。

如果把这个联通块去掉,树会形成若干个不相交、不接触的小联通块,且这些联通块的大小之和一定。

如果把树的一个点提根,进行上下dp,就能很方便地进行统计答案。

Topcoder SRM 563 Div 1 - Problem 950 CoinsGame

好惨惨啊!这么简单的题竟然没有自己想出来~~

我们称棋子A和棋子B等价,当且仅当它们只会同时在这个棋盘上,或同时离开棋盘。

一个显然的结论就是,若A和B等价,B和C等价,那么A和C等价(即具有传递性)

所以可以通过bfs求出所有等价点对,通过并查集合并。用总情况数减去不合法情况数就好了。

Topcoder SRM 564 Div 1 - Problem 850 DefectiveAddition

topcoder罕见的水题啊!

如果我们已知了每个数相与原数不同的最高的二进制位,(设ta为pi)

那么对于第k位,如果有x个数满足pi>k,由于这些位的异或值确定,

所以,当x>0时,有2^(x-1)种方案。

由于当x=0时会有意想不到的事情发生,所以稍微dp一下就好了。

Topcoder SRM 565 Div 1 - Problem 1000 UnknownTree

topcoder罕见的无思维难度码农题。。

分两种情况讨论:A、B、C在同一条链上。以及A、B、C不在同一条链上。

Topcoder SRM 566 Div 1 - Problem 1000 FencingPenguins

http://www.cnblogs.com/Blog-of-Eden/p/7852426.html

Topcoder SRM 567 Div 1 - Problem 1000 Mountains

一道很妙的题哇。

一个显而易见的结论是,一座山的可见范围,一定是一段连续的区间。

考虑编号从大到小的放置山。

如果当前山可见,并且可见范围不是从最左边到最右边。

那么又有一个很显然的结论,当前山只有两个合法位置。

考虑如果当前山不可见,那么这座山对之后要放的山没有丝毫影响。直接乘上这座山合法的位置数即可。

如果这座山到处都可见?这是个较严重的问题,

我们考虑,把所有这样的到处都可见的山全部拿出来。(按照编号从小到大)(我们称之为大山)

相邻两座大山之间夹着若干个小山。

对于大山L和大山R,(L<R),很显然1到L-1和R+1到n的山对这之间的山的放置没有影响。

所以可以枚举相邻两个大山的位置,对之间的小山位置进行dfs。

dfs的复杂度是2的幂次,可以接受。

Topcoder SRM 568 Div 1 - Problem 1000 DisjointSemicircles

异常兴奋!又一道喜闻乐见的分情况讨论题!

我们设有m对连线已经确定。(m<=n)

当m比较大的时候,暴力似乎行。O(2^(2n-2m-1)*C(2n-2m,n-m))

当m比较小的时候,枚举这些连线分别在上方还是在下方。

方案合法当且仅当这个半圆里面与它同向的点的数量是偶数。

设向上为1,向下为0,一个半圆相当于限制了这个半圆之中的变量的xor值为1或者是0.

对于前缀xor数组,相当于限制了两个位置上的数xor为1或者是0。

这个用并查集来检查一下是否合法即可。

Topcoder SRM 569 Div 1 - Problem 1000 MegaFactorial

我真是个爱学习的孩子,在秋游的时候还在想这道题~~

简单来说,由于B<=10,我们只关心的是B的最小质因子p以及它的指数q。

简单的说,我们只要统计N!K的值中,质因子p的指数Q,计算Q div q就好了。

由于对1e9+7取模,div比较麻烦,所以:Q div q = (Q - Q mod q) / q

再由于K比较小,所以矩乘一下就行了。

Topcoder SRM 570 Div 1 - Problem 900 CurvyonRails

谁来治一治我普及组级别的网络流水平啊o(╥﹏╥)o

复杂地来说,黑白染色,每个格子拆成两类点:横方向点和纵方向点,

由于两份流量都流入横方向点或都流入纵方向点都会产生1的费用,

所以将方向点拆点,连两条边,一条流量为1,费用为0;另一条流量为1,费用为1。

Topcoder SRM 571 Div 1 - Problem 1000 CandyOnDisk

Topcoder也会出这种无脑题?

若a能到达b,那么b也能到达a。

如果从一个圆到达另一个圆,其可到达范围是两个圆环。

每个圆环当作一个点,就可以建图跑spfa。

需要特判一些特殊情况(*/ω\*)

Topcoder SRM 572 Div 1 - Problem 1000 NextAndPrev

枚举分界点,贪心求最小代价就行了?

由于口胡我可能没想清细节。。

Topcoder SRM 573 Div 1 - Problem 850 WolfPack

以我的智商看来是做不动这种脑洞题啊。

每次x可以+1,-1,不变,y也可以+1,-1,不变,且x,y至少有一个变,这个很烦啊。

根据题解的做法,我们把坐标轴旋转45°,题目变成了:

每次x可以+1或-1,y也可以+1或-1,且x,y独立!这一步转化好妙啊!

接下来就好做了,对于一个终点Z,

对于Zx,可以求出x方向上的方案数;对于Zy,可以求出y方向上的方案数。

答案是sigma Zx,Zy [Fx(Zx)*Fy(Zy)] = sigmaZx[Fx(Zx)] * sigmaZy[Fy(Zy)]

TopCoder SRM 574 Div 1 - Problem 1050 Tunnels

对于给出矩形中的非从左边连到右边的地道,这些地道会形成括号序列,

对于从左边穿到右边的地道,可能是从左往右,也可能是从右往左?

从上往下进行dp?

似乎怎么想也想不清啊。。反正是口胡,放弃思考了。。

TopCoder SRM 575 Div 1 - Problem 1000 Tunnels

每次想网络流题都要想好久好久~~。。

先进行黑白染色,由于L字形角落的格子一定黑色,两端的格子一定白色,

两端的格子,一定有一个在奇数行,一个在偶数行。

源点流向奇数行,偶数行流向汇点就行了。

TopCoder SRM 576 Div 1 - Problem 900 CharacterBoard

Topcoder罕见的放松题啊。

我们考虑给你的矩阵中两个元素x和y,若它们在字符串中的位置相同才可能发生冲突。

位置相同当且仅当x和y的位置差能被Len整除,这样的len最多只有i0*j0*sqrt(i0*W)种

对于这样的每一种len,暴力判断是否合法以及计算方案数,

如果不存在这样的冲突,方案数为26^(Len - i0*j0)。所以等比数列求和即可。

TopCoder SRM 577 Div 1 - Problem 1000 BoardPainting

又是网络流。┭┮﹏┭┮

好难哇,怎么做啊。。

在此给出周欣的算法:

如果把相邻两个格子之间新建一个虚点,选择这个虚点,就表示这两个格子在一次染色中完成。

由于染色过程不能转弯,这限制了一个格子横放向上的虚点和纵方向上的虚点不能同时选。

这就是二分图最大独立集问题,可以用网络流解决

TopCoder SRM 578 Div 1 - Problem 1000 DeerInZooDivOne

看到题目描述中的鹿角,莫名想到乔巴~~

简单地说,可以枚举两个联通块之间的分界边,然后进行dp,

考虑f[a][b]表示以a为根节点,b为根节点,a联通块与b联通块同构的最大大小。

a的若干个儿子和b的若干个儿子一一匹配,其f值的和+1就是f[a][b]。

这就是二分图最大权匹配

TopCoder SRM 579 Div 1 - Problem 1000 RockPaperScissors

如果当前我们知道了对手之前扔出a个剪刀,b个石头,c个布,我们可以通过dp预处理求出下一次对手扔剪刀、扔石头、扔布的概率。

然后我们当前做出最优决策,使这一回合的期望得分尽可能的大。这也是一个dp。

TopCoder SRM 580 Div 1 - Problem 1000 WallGameDiv1

简单博弈,我们可以证明,Rabbit不会将棋子向上移,

当Rabbit在某一行,且下方有障碍时,Eel不会放障碍,

以此我们得出一个结论,Rabbit在一行中的运动是,左,右,左,右,左,......最后下。

我们还可以得出一个结论,当Rabbit在某一行某一列上,且此时Eel没有在它下方放上障碍,那么Rabbit也一定会往下走了(往左右走之后还一定会回到这里)。

所以可以用区间dp。f[i][L][R][0 or 1]表示第i行,已经放了L到R的障碍(即Rabbit已经走过了L到R),此时Rabbit在L-1还是在R+1。

每次Eel决定Rabbit下方是否有障碍,如果有障碍,则Rabbit决定往左或往右。

据说cwy用奥妙重重的骗分方法A了此题?说不定那也是对的喔。。

累了。。

还有581到592。。下次回来再写吧

原文地址:https://www.cnblogs.com/Blog-of-Eden/p/8407296.html

时间: 2024-11-05 16:31:24

Topcoder口胡记 SRM 562 Div 1 ~ SRM 592 Div 1的相关文章

CF/SRM的口胡记录

感觉整体BZOJ做做丝毫没有前途,几个大爷都在淦SRM,我就来开个坑来口胡一波CF/SRM以便快速滚粗.(因为是口胡就不设计数器了,其实是我懒. [SRM645]Easy 按区间排排序直接扫一遍就可以了. [SRM645]Medium 如果每个点的方向向量相同那么就可能能够到达否则肯定不能.①如果偶数步,就是有两种向量的合成,我们可以用扩展gcd来判断是否可行.②如果是奇数步,就跑一步,然后按照①来做就可以了.

BZOJ 口胡记录

最近实在是懒的不想打代码...好像口胡也算一种训练,那就口胡把. BZOJ 2243 染色(树链剖分) 首先树链剖分,然后记录下每个区间的左右端点颜色和当前区间的颜色段.再对每个节点维护一个tag标记.剩下的就是很normal的线段树区间合并和标记下传了. BZOJ 2245 工作安排(费用流) 很normal的拆边费用流.建立虚拟源点s和汇点t.s向产品连边,产品向可以生产它的工人连边,工人向t连边.这里的分段函数是个非递减的分段函数,由于最小费用流的特殊性.这里的分段函数可以用流和费用分割开

迷茫之中的口胡

WC冬眠营无聊之余,自己想了很多,想了很多自己的oi生活,想了很多自己,迷茫之中来口胡一些.     我觉得自己初三之前的oi经历都是挺顺利的,初一接触oi,初二下学期正式开始搞oi,初一普及组国一,初二提高组国一,并差一点进省队,初三成功进入省队.      然而noi因为一个字母的打错,造成了少了60分的悲剧,而看着同学们都不错的成绩,心里还是有一些失落.高一noip考试,我本带着信心去考试,却发现day1T3少考虑条件而少60分,day2T3竟然出现想得不在点上的情况,出了考场立马想出来的

口胡提交记录

为了偷懒提高刷题效率,有些题目只做口胡,并在此整理. 1.19 CF1101D GCD Counting pro:https://www.luogu.org/problemnew/show/CF1101D sol:https://www.cnblogs.com/Creed-qwq/p/10293719.html 原文地址:https://www.cnblogs.com/Creed-qwq/p/10293731.html

把一个DIV放到另一个div右下角

父对象相对定位,子对象以父对象为参考点绝对定位:外层的div设置为相对定位,内层的div设置为绝对定位: 1 <div id="box1"> 2 <div id="box2">测试内容</div> 3 </div> 4 <style> 5 <!-- 6 #box1{width:600px;height:600px;background:green;position:relative} 7 #box1

图片宽度和高度都大于div,实现图片在div中居中

<style type="text/css"> #out{height:100px; width:150px; position:relative; overflow:hidden;} #mid{position:absolute;top:50%; left:50%; width:1000px; margin-left:-500px; text-align:center;} #in{ position:relative; top:-50%;} </style>

点击div和某些控件之外的地方隐藏div,点击div不隐藏。对象 click和document click冲突有关问题

帮朋友解决这个问题,我发现用以往想想像的方式来实现,貌似不太可行,所以从网上找了一些解决办法,进行优化,这篇比较详细,所以拿来备忘,另一方面也希望可以帮助需要的同学! 问题背景:jQuery事件问题!!对象 click和document click冲突问题 我想点击某个元素显示一个对象, 点击页面任意处,隐藏这个对象 //点击look对象,显示隐藏mydiv $("#look").bind("click", function () {      $("#m

2016/3/30 ①投票checkbox ②进度条两个div套起百分比控制内div(width) &lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt; ③数据库test2 表 diaoyan... 35岁发展方向投票

分两个页面,要点:提交form 相连action method  两个页面可以合成一个页面action传到自身页面   但分开较清晰 第一个页面vote.php 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="h

jquery效果,多个div,点击任何一个div,那么这个div会切换文字,变换背景颜色,再次点击其他的div ,这个div会发生刚才的变化,之前点击的div的颜色会变回来

首先css样式: /*原来的背景色*/ .bg { background:'red' } /*需要切换的背景色*/ .bg_click { background:'green' } JS: $('div').on('click',function(){ var $div = $(this); var $others = $div.siblings(); if($div.hasClass('bg')){ $div.removeClass('bg').addClass('bg_click').htm