BZOJ 口胡记录

最近实在是懒的不想打代码。。。好像口胡也算一种训练,那就口胡把。

BZOJ 2243 染色(树链剖分)

  首先树链剖分,然后记录下每个区间的左右端点颜色和当前区间的颜色段。再对每个节点维护一个tag标记。剩下的就是很normal的线段树区间合并和标记下传了。

BZOJ 2245 工作安排(费用流)

  很normal的拆边费用流。建立虚拟源点s和汇点t。s向产品连边,产品向可以生产它的工人连边,工人向t连边。这里的分段函数是个非递减的分段函数,由于最小费用流的特殊性。这里的分段函数可以用流和费用分割开来。也就是说将工人和t之间的每个边拆成m段边,每段边给个流量和费用。最后求一遍最小费用最大流。

BZOJ 2257 瓶子和燃料(数论)

  两个瓶子的燃料之间的可能情况是ax+by(ax+by<=max(a,b)),而min(ax+by)=gcd(a,b)。归纳可以得出k个瓶子的最小燃料是gcd(a1,a2,,,ak),于是问题变成,找到n个数的k个数使得这k个数的最大公约数最大。处理出这n个数的因子。找到其中出现次数超过k次的最大因子即可。

BZOJ 2298 problem a(DP)

  题目可以转化为最多有几个人说真话,考虑每个人给出的信息实际上是一个关于他的rank的一个区间[ai+1,n-bi].给出的信息中,区间重合的次数要不大于于这个区间的长度。于是问题转化为,求出不冲突的区间个数的最大值。这个问题可以用DP解决。令dp[i]表示[1-i]的范围内最多有多少个区间不冲突。则转移显然可得。最后的答案就是n-dp[n].

时间: 2024-08-27 02:03:37

BZOJ 口胡记录的相关文章

CF/SRM的口胡记录

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

口胡提交记录

为了偷懒提高刷题效率,有些题目只做口胡,并在此整理. 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

BZOJ 刷题记录 PART 4

[BZOJ1143]CTSC的题目...先用floyed传递闭包,然后直接上匈牙利算法. [BZOJ1452]从未写过的二维树状数组.好像很简单.. struct two_bit { int f[305][305]; inline void add(int x,int z,int A) { for (;x<=n;x+=L(x)) for (int y=z;y<=m;y+=L(y)) f[x][y]+=A; } inline int ask(int x,int z) { int ans=0; f

BZOJ 刷题记录 PART 5

拖了好久才写的. [BZOJ2821]接触分块大法.这道题略有点新颖.首先我们先分块,然后统计每块中每个数出现的个数. 下面是联立各个方块,预处理出第I个方块到第J个方块出现正偶数次数的个数. for (i=1;i<=s;i++) { for (j=i;j<=s;j++) { sum[i][j]=sum[i][j-1]; for (k=a[j].l;k<=a[j].r;k++) { temp[data[k]]++; if (!(temp[data[k]]&1)) sum[i][j

迷茫之中的口胡

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

【BZOJ做题记录】07.07~?

在NOI一周前重开一个坑 最后更新时间:7.07 11:26 7.06 下午做的几道CQOI题: BZOJ1257: [CQOI2007]余数之和sum:把k mod i写成k-k/i*i然后分段求后面的部分就好了 BZOJ1258: [CQOI2007]三角形tri:在草稿纸上按照位置和边找一下规律就好了 BZOJ1260: [CQOI2007]涂色paint:简单的区间DP BZOJ1303: [CQOI2009]中位数图:小于中位数的改为-1大于的改为1,算一算前缀和然后哈希一下乘一乘就好

BZOJ 刷题记录 PART 1

作者 : Dolphin 原文地址:http://blog.csdn.net/qingdujun/article/details/27109035 一.实体完整性定义 [例1]将Student表中的Sno属性定义为码. CREATE TABLE Student ( Sno CHAR(10) PRIMARY KEY, /*在列定义主码*/ Sname CHAR(20) NOT NULL, Sage SMALLINT ); 或者: CREATE TABLE Student ( Sno CHAR(10

BZOJ 刷题记录 PART 2

[前言]最近感觉状态不错.做题几乎不看题解了.(一群大牛(FZ&WCY)在旁边喷:你刷水题有意思!)但是至少这也是一种进步吧.特别是权限题中有很多思维题. [BZOJ1055]就是一个简单的区间DP.重要代码: for (l=2;l<=L;l++) for (i=1;i<=L-l+1;i++) { j=i+l-1; for (k=0;k<4;k++) for (cut=i;cut<j;cut++) for (p=0;p<4;p++) if (f[i][cut][p])

BZOJ 刷题记录 PART 3

[前言]还是强调要少看题解. [BZOJ1090]简单的区间DP.值得注意的是:在压缩的时候,如果是10个A压缩,那么化成(10)A后有5个字符而不是4个!(我在这里被坑了好长时间!)以下是核心代码: for (len=2;len<=L;len++) for (i=1;i<=L-len+1;i++) { j=i+len-1; for (k=i;k<j;k++) f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]); for (l=1;l<=len/2;l++