摘要:
这道题题目看完就知道用哈希枚举以下就好,但是做得时候犯病了,犯了三个错误,大数据上卡了好久 1.不小心把枚举条件放到循环定义里,结果枚举不全 2.做了两次无意义的哈希(把s0s1都哈希出来了,其实从原串里取就行,浪费了时间,T 了几发) 3.这个暂时还不知道为什么错了:因为这道题的枚举在找到一个可能 阅读全文
摘要:
一道字符串题,从前往后压缩句子 每次可以把已有的后缀与带添加的前缀相同的部分压缩掉,问最短压缩后的句子 显然这道题就是要做一个字符串匹配的工作,所以Kmp肯定可以做,但是后来看了一下好像会被卡常数,还是要稍微优化一点的, 这里因为在练hash,所以就用hash做了。 这里我们要的是l,r的哈希值,而 阅读全文
摘要:
早期DIV2场的一道D题,为了扫盲做的状压 题目很简单,把吃菜的情况状压一下,然后多记一维上一道菜吃了什么即可 转移方程: dp[i][j][k]表示吃第i道菜,上一道吃的j,吃了的状态是k时的最大满足 dp[i][j][k|(1<<(t-1)]=max(dp[i][j][k|(1<<(t-1)], 阅读全文
摘要:
题意: 给定一个n*m的矩阵,每行最多取m/2个数,求取得的数的和的最大值,并且和能被k整除 很明显就是一个取与不取的背包问题,唯一个问题是每行的限制怎么实现,其实很简单,只要在一行结束的时候把取了其他个数的值全都归到0上,把限制重置掉就行 转移方程:dp[i][j][k]表示取到第i个格子(按行列 阅读全文
摘要:
先简单描述一下题意,有一串整数序列a,a的数都是隐藏起来的,可以对a询问ai与aj或,与,异或的结果,最多询问n+2次,试求出a 这道题的读入是交互式的,因为没有做过交互题,所以打的时候完全不知道怎么下手 第二天补了一下这道题,看了眼交互怎么写,这里先记录一下: 交互题读入: 每一次询问之后执行 f 阅读全文
摘要:
1.DP:过一遍基础DP(基础线性DP*,状压DP*,背包问题*,区间DP*(含四边形不等式优化),树形DP,数位DP) 每块1至2题,CF上按tag随机挑选,独立完成, 已完成题目:CF 1433F 2100分 基础(类背包)DP CF 580D 1800分(早期Div2D题) 状压DP 被时间空 阅读全文
摘要:
这场打裂开,题数其实是到了的,但是半夜脑子不清醒还是怎么回事,已经写对的题目老因为特判点和格式硬Wa几发,然后D题早就写对了的算法,一个longlong死活改了1个小时,最后罚时炸了小扣一波分 另外交互题作为一种比较新的题面,完全没碰过(记得之前也有过交互题),有空要在CF上练几道交互题了,否则像这 阅读全文
摘要:
1.每周认真,严谨完成集训队布置的训练 2.每周日前完成下一周的自主学习计划: 内容按照江老板的框架整理来,目前两周内目标: 2周内完成对铜牌范围内的扫盲,增加练习量,减少赛场翻车卡题。 3.积极和队友交流,赛场上服从队长安排,禁止头铁,禁止头铁,禁止头铁! 4.无论什么比赛(包括CF),打的不好的 阅读全文
摘要:
写个树状数组板子,存一下。 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 const int N=100005; 6 struct point { 7 int x,y, 阅读全文
摘要:
这道题当时CF打了,赛后得知有一种非常精妙的写法,因为他是要把字母倒过来问我们要走几步,那么就给每个字母倒过来赋个值,然后在交换顺序后把值放进去做一个逆序对就可以了 下附代码: 1 #include<cstdio> 2 #include<iostream> 3 #include<vector> 4 阅读全文