10 2019 档案

摘要:给你一个数,在一段区间内找到另一个数,使得他们的异或最大; trie树上存储每个数的二进制位,查询时贪心查询能让当前高位取得1的位置; 实际上是一个求前缀和的思想。每个数都开一个trie树浪费空间,当前建树的时候基本是转移前面的树; 首先设当前二进制位为d,将前一棵树的d^1直接转移(因为以后也用不 阅读全文
posted @ 2019-10-31 07:40 AiRomance 阅读(412) 评论(0) 推荐(0) 编辑
摘要:P1270 “访问”美术馆 dfs读入,存图有点像线段树; 在枚举时间时,要减去走这条边的代价; #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=1010; stru 阅读全文
posted @ 2019-10-31 07:28 AiRomance 阅读(135) 评论(0) 推荐(0) 编辑
摘要:P1099 树网的核 无根树,在直径上找到一条长度不超过s的路径,使得最远的点距离这条路径的距离最短; 首先两遍dfs找到直径(第二次找的时候一定要吧father[]清零) 在找到的直径下枚举长度不超过s的链,ans的下界是直径两端点到这条链距离的最小值; 然后将直径上的点都标记,再次求一下别的点到 阅读全文
posted @ 2019-10-31 07:23 AiRomance 阅读(209) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-10-30 08:29 AiRomance 阅读(1) 评论(0) 推荐(0) 编辑
摘要:P2052 [NOI2011]道路修建 这个题其实在dfs里面就可以把事干完的,(我一开始还拿出来求了一把)…… 一条边的贡献就是儿子的大小和n-siz[v]乘上边权; #include<cmath> #include<cstdio> #include<cstring> #include<algor 阅读全文
posted @ 2019-10-29 07:59 AiRomance 阅读(156) 评论(0) 推荐(0) 编辑
摘要:P2016 战略游戏 树形DP 入门题吧(现在怎么是蓝色标签搞不懂); 注意是看见每一条边而不是每一个点(因为这里错了好几次); #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int 阅读全文
posted @ 2019-10-29 07:55 AiRomance 阅读(152) 评论(0) 推荐(0) 编辑
摘要:P1108 低价购买 最长下降子序列不用多讲;关键是方案数; 在求出f[i]时,我们可以比较前面的f[j]; 如果f[i]==f[j]&&a[i]==a[j] 要将t[j]=0,去重; 这样将所有t[j]加起来就是方案数; #include<cstdio> #include<cstring> #in 阅读全文
posted @ 2019-10-28 08:22 AiRomance 阅读(145) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-10-28 07:39 AiRomance 阅读(1) 评论(0) 推荐(0) 编辑
摘要:P1041 传染病控制 说实话这种暴力我还是头一次见,每次病毒都会往下传染一层; 数据范围小,我们可以直接枚举当前层保护谁就好了; 用vector 记录相同层数的节点;维护已经断了的点; 如果超出最底层或者都已经被保护就更新答案; #include<cstdio> #include<cstring> 阅读全文
posted @ 2019-10-27 09:03 AiRomance 阅读(204) 评论(0) 推荐(0) 编辑
摘要:P2502 [HAOI2006]旅行 一定要看清题目数据范围再决定用什么算法,我只看着是一个蓝题就想到了记录最短路径+最小生成树,但是我被绕进去了; 看到只有5000的边,我们完全可以枚举最小边和最大边,判断起点和终点是否连通用并查集维护一下就好了; 分数约分一定要仔细想想, an1==ans2的时 阅读全文
posted @ 2019-10-26 21:04 AiRomance 阅读(170) 评论(0) 推荐(0) 编辑
摘要:题意: 给你两个字符串,由01组成;求他们两个的最短公共非子序列,要求字典序最小; 非公共子序列:都不是这两个字符串的子序列; 本人只会暴力啊,二进制枚举稳拿15分; 然而这道题其实是一个最短路题; 题解: 贪心考虑从前往后s1……si,维护一个j表示当前字符串已经匹配到t1……tj, 贪心考虑tj 阅读全文
posted @ 2019-10-25 17:57 AiRomance 阅读(171) 评论(0) 推荐(0) 编辑
摘要:P3719 [AHOI2017初中组]rexp 没有什么算法的题做起来真不适应,这道题深深讽刺了我想用栈维护匹配括号个数的想法; 递归解决就行了; 时刻注意函数返回值是什么,边界条件是什么; #include<cstdio> #include<cstring> #include<algorithm> 阅读全文
posted @ 2019-10-24 07:24 AiRomance 阅读(188) 评论(0) 推荐(0) 编辑
摘要:最长上升子序列比较暴力的写法是n2 的,实际上我们求得就是前面的比当前小的最长上升子序列的最大值; 树状数组可以优化它; 倒过来求就是最长下降子序列; 阅读全文
posted @ 2019-10-24 07:21 AiRomance 阅读(561) 评论(0) 推荐(0) 编辑
摘要:P1378 油滴扩展 记得这道题好久以前(好像是上个学期?) 就想做了,但是看着里面的半径边界好像很难处理就没做(主要是当时刚学OI(菜还给自己找借口)); 今天上午一直研究SG函数,做的都自闭了,晚上想刷刷水题缓解一下心情,就又看到了这道题; 一看数据范围,原来挺简单的,还是个绿题,听着音乐开始切 阅读全文
posted @ 2019-10-17 21:36 AiRomance 阅读(153) 评论(0) 推荐(0) 编辑
摘要:P2258 子矩阵 二进制枚举套二进制枚举能过多一半的点; 我们只需要优化一下第二个二进制枚举的部分; 首先我们先枚举选哪几行,再预处理我们需要的差值,上下,左右; sum_shang,sum_heng 然后DP查找最小值 dp[i][j]表示前i列已经选了j列; #include<cstdio> 阅读全文
posted @ 2019-10-15 07:30 AiRomance 阅读(229) 评论(0) 推荐(0) 编辑
摘要:P4514 上帝造题的七分钟 求的是矩阵里所有数的和; 维护四个树状数组; #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=2050; int b[maxn][max 阅读全文
posted @ 2019-10-15 07:19 AiRomance 阅读(174) 评论(0) 推荐(0) 编辑
摘要:P2831 愤怒的小鸟 抛物线过原点,只要再找两个就能确定抛物线; 处理出两两之间的抛物线能过哪些点,状态压缩; 但是直接枚举每一条抛物线常数太大会T,所以我们需要预处理一个low_bit表示当前状态下第一个没选的,即是二进制下第一个不是1的位置; 因为我们早晚都要把它变成1,所以先处理他就可以达到 阅读全文
posted @ 2019-10-15 07:10 AiRomance 阅读(161) 评论(0) 推荐(0) 编辑
摘要:P1026 统计单词个数 string 基本操作: substr(x,y) x是起始位置,y是长度; 返回的是这一段字符串; 先预处理sum[i][j],表示以i开头,最多的单词数; 从后往前寻找,保证开头没有被用过; sum[i][j]=sum[i+1][j]; 再找是否有新单词出现; s.fin 阅读全文
posted @ 2019-10-14 20:53 AiRomance 阅读(158) 评论(0) 推荐(0) 编辑
摘要:P1986 元旦晚会 每个人可能属于不同的声部,每个声部最少要有c[i]个人发声; 求最少需要多少话筒; 首先贪心,将所有声部的区间按照右端点大小排序,如果右端点相同,左端点从小到大排序; 贪心每次选取靠近右端点的,这样每个区间相交的是最多的。 #include<cstdio> #include<c 阅读全文
posted @ 2019-10-14 20:20 AiRomance 阅读(195) 评论(0) 推荐(0) 编辑
摘要:P3313 [SDOI2014]旅行 一棵树,其中的点分类,点有权值,在一条链上找到一类点中的最大值或总和; 树链剖分把树变成链; 把每个宗教单开一个线段树,维护区间总和和最大值; 宗教很多,需要动态开点; 树链剖分: void dfs1(int x,int fa) { siz[x]=1; fath 阅读全文
posted @ 2019-10-14 19:51 AiRomance 阅读(117) 评论(0) 推荐(0) 编辑
摘要:P4163 [SCOI2007]排列 注意要排序; next_permutation prev_permutation #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn 阅读全文
posted @ 2019-10-12 11:24 AiRomance 阅读(148) 评论(0) 推荐(0) 编辑
摘要:所谓状态压缩,大多数就是用二进制01形式将状态表示出来,运用位运算完成状态的查看和转移;基本上数据范围是n<=15; P4906 小奔关闹钟 这是很裸的状态压缩。我们要关闭所有的开关,但是开关是相连的; 有一个很好地条件是,开关最多能波及到两层;一个开关的变化,直接关联的会变化,间接变化的也会变,但 阅读全文
posted @ 2019-10-12 11:21 AiRomance 阅读(163) 评论(0) 推荐(0) 编辑
摘要:P1966 火柴排队 很好的逆序对板子题; 求的是(x1-x2)*(x1-x2)的最小值; x1*x1+x2*x2-2*x1*x2 让x1*x2最大即可; 可以证明将b,c数组排序后,一一对应的状态是最大的; ac+bd<ad+bc ac-ad<bc-bd a*(c-d)<b*(c-d)//c-d< 阅读全文
posted @ 2019-10-10 21:34 AiRomance 阅读(143) 评论(0) 推荐(0) 编辑
摘要:P1065 作业调度方案 一个有点费手的“小”%%拟; 题都差点没读明白……; 每个机器所能完成的工序是不一样的; 每个物品完成工序的机器是指定的; 按照题面说的按时间轴推下去就行了; 没有时间上界有点难受…… #include<cstdio> #include<cstring> #include< 阅读全文
posted @ 2019-10-10 19:37 AiRomance 阅读(170) 评论(0) 推荐(0) 编辑
摘要:P1069 细胞分裂 我们求的就是(x^k)|(m1^m2) k的最小值; 先给m1分解质因数,再给每个细胞分解; 如果m1有的质因数,细胞没有就跳过; 否则就记录答案; 注意整数除法下取整的原则; 1 #include<cstdio> 2 #include<cstring> 3 #include< 阅读全文
posted @ 2019-10-10 19:32 AiRomance 阅读(855) 评论(0) 推荐(0) 编辑
摘要:P1021 邮票面值设计 题目意思是你最多用n张邮票,你可以自己设定k种邮票的面值,每种邮票数量无穷,你最多能用这k种邮票在不超过n张的情况下,组合成的价值要求是从1开始连续的, 求最大能连续到多少; 有完全背包背包的身影,我们知道每个物品的重量是1,但是我们不知道每个物品的价值是多少,这需要我们枚 阅读全文
posted @ 2019-10-10 15:33 AiRomance 阅读(165) 评论(0) 推荐(0) 编辑
摘要:P3956 棋盘 这道搜索弄得我很难受。 第一,一定要看清楚题在写。第二,弄清楚判断条件; 首先图的大小是m*m不是n*m; 然后就是当前有颜色的点是不用变颜色的; 阅读全文
posted @ 2019-10-10 11:12 AiRomance 阅读(170) 评论(0) 推荐(0) 编辑
摘要:1 答案不对?输出long long 类型的数组总是输出很大的不知道的数?,printf 和cout都死了? 你可能输入时输入long long, scanf用的%d; 2 时刻注意for while 后有没有分号。 3 #include<cmath> using namespace std; in 阅读全文
posted @ 2019-10-09 10:08 AiRomance 阅读(125) 评论(0) 推荐(0) 编辑
摘要:一个int是四个字节,32位,一个字节是8位, 分辨率为 1600x900、16 位色的位图,存储图像信息所需的空间为( )。 1600*900*2/1024 1KB=1024B;1MB=1024KB=1024×1024B。 2 正数的补码是他自己,负数的补码是除符号位其他位取反再加一; 3 闰年是 阅读全文
posted @ 2019-10-09 09:06 AiRomance 阅读(644) 评论(1) 推荐(0) 编辑
摘要:P1016 旅行家的预算 贪心求,在当前点如果能到达距离最近的油价比他小的就直接去油价比他小的, 如果在可行范围内没有比他油价小的,就加满开到可行范围内油价最小的点; 这么做是对的,我不会证明; 还有就是,如果变量定义在外面了,在for循环里面就不要定义了,这个点卡了我一下午; 一直停止运行…… 阅读全文
posted @ 2019-10-08 17:43 AiRomance 阅读(135) 评论(0) 推荐(0) 编辑
摘要:P1088 火星人 algorithm里面有一个next_permutation(a,a+n); 阅读全文
posted @ 2019-10-08 16:16 AiRomance 阅读(126) 评论(0) 推荐(0) 编辑
摘要:喜欢2B。。。 阅读全文
posted @ 2019-10-08 16:07 AiRomance 阅读(125) 评论(0) 推荐(0) 编辑
摘要:P1057 传球游戏 设f[i][j]为第i次传到j的方案数; f[0][1]=1; 单独处理开头和结尾; 阅读全文
posted @ 2019-10-08 14:21 AiRomance 阅读(126) 评论(0) 推荐(0) 编辑
摘要:P1098 字符串的展开 规则有点多吧; isdigit(char) 表示如果字符是数字返回一,否则返回0; 倒序做一个下标就行了; 巧用三目运算符避开分类讨论,避开开头和结尾,根据条件层层逼近; 阅读全文
posted @ 2019-10-08 09:51 AiRomance 阅读(187) 评论(0) 推荐(0) 编辑
摘要:P1025 数的划分 学傻了,学傻了,什么dp搜索什么啊; 阅读全文
posted @ 2019-10-07 19:59 AiRomance 阅读(139) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-10-07 17:31 AiRomance 阅读(3) 评论(0) 推荐(0) 编辑
摘要:P2822 组合数问题 求的是C(i,j)有多少个是k的倍数; 首先,求组合数是有技巧的, 用杨辉三角求组合数,爽的一批; 但是,这样只能得90分,两个点T了; 因为k是不变的,我们可以用前缀和的思想求出每个点的答案; 注意ans[i][i+1]=ans[i][i];因为下一个点是比上一个点多一个的 阅读全文
posted @ 2019-10-07 09:35 AiRomance 阅读(201) 评论(0) 推荐(0) 编辑
摘要:题面:亚瑟王 最近考试考期望很自闭啊,没做过这种类型的题,只能现在练一练; 所谓期望,就是状态乘上自己的概率;对于这道题来说,我们要求的是每张牌的伤害乘上打出的概率的和; 当然不是直接乘,因为给的是每轮中这张牌打出的概率,这张牌没打出就要考虑下一张牌,要有一张牌发出技能才能结束一轮;除非一张牌都发不 阅读全文
posted @ 2019-10-06 21:46 AiRomance 阅读(158) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-10-05 21:03 AiRomance 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-10-04 21:51 AiRomance 阅读(3) 评论(0) 推荐(0) 编辑
摘要:求区间第K大的值; 我们需要在短时间内回答数目巨大的问题,这个算法的核心是空间换时间; 每个点建一个线段树,是的; 我们先离散化所有权值,使得当前的权值在1到n范围内,恰巧是vector里的下标; 对于每一个点,我们分成左二子和右儿子,分别存放当前区间的左半部分和右半部分,维护左右节点的数量; 我们 阅读全文
posted @ 2019-10-04 21:13 AiRomance 阅读(193) 评论(0) 推荐(0) 编辑
摘要:题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程。 在可以选择的课程中,有 2n2n2n 节课程安排在 nnn 个时间段上。在第 iii(1≤i≤n1 \leq i \leq n1≤i≤n)个时间段上,两节内容相同的课程同时在不同的地点进行,其中,牛牛预先被安排在 阅读全文
posted @ 2019-10-02 22:17 AiRomance 阅读(121) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-10-02 22:08 AiRomance 阅读(2) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示