随笔分类 - ACM---思维
摘要:Function 解题思路: 因为 x 是正整数,所以每个 Fi 都必须先分配 xi=1。这时候还剩下 m-n 个 1 没有分配,采用贪心原则。首先需要先知道对于每一次分配的1,产生的增量为: 所以我们每次都取最小的增量,最后即为最小的增量。这就用到了优先队列 AC_Code: 1 #include
阅读全文
摘要:Good Subarrays 题意:找给定串中满足\(\sum_{i=l}^{r}a_{i}=\left ( r-l+1\right )\)的子串的个数 题解:式子转换: \(\sum_{i=l}^{r}a_{i}=\left ( r-l+1\right )\)连边同时减去\(\left ( r-l
阅读全文
摘要:Wi Know 题意:在字符串中找ABAB形的子序列,输出字典序最小的AB 题解:枚举每个位置作为B1,在该位置与这个字符的下一个位置B2之间查找最小的A2,而在B1之前,所有字符都可以作为A1,已经把它们的下一个A2放到了线段树里。 AC_Code: 1 #include <bits/stdc++
阅读全文
摘要:Cockroaches 题意:有n只虫,每只虫的位置都用一个横竖坐标表示,现在有一种杀虫剂,这种杀虫剂放到某一点,它能将所在它所在的行和列的所有虫杀死,现在让求出只放一个杀虫剂,最多能杀多少只虫和在满足杀最多只虫的情况下,有多少种放置方法能杀这么多只虫。 题解具体见代码 AC_Code: 1 /*
阅读全文
摘要:Magic Stones 题解:here 每一次变换都会导致差分数组的两个相邻元素位置交换,但是大小是不变的; 要保证两个数组相等,所有的差分数组都是要一样的,包括第一个,也就是第一个数要相等 这里第一个数和最后一个数是不变的,所以题目正解为:比较这两个差分数组是否相同,如果相同,再看c数组和t数组
阅读全文
摘要:Leading Robots 题意:给了\(n\)个机器人的初始位置\(p\)和加速度\(a\),起始速度都是\(0\),问起跑后,问你有多少个机器人当过第一名,即在某一时刻,有唯一一个机器人如果冲在最前面则他是当过第一名的,注意并列第一则不算第一,赛道是无限长的。 大佬题解:here AC_Cod
阅读全文
摘要:Symmetric Matrix 题意:构造满足上述4个条件的矩阵,问能构造多少个 分析:可以把这个矩阵看做是无向图的邻接矩阵,那么我们就可以把问题转化为求无向图中所有点的度数都为2的图有多少个。我们考虑\(f\left [ n\right ]\)表示\(n\)个结点的图满足条件的数量。 我们考虑图
阅读全文
摘要:F. Kate and imperfection(思维+贪心+素数筛) 题意:一个集合的 imperfection 定义为:这个集合中任意一对数的 gcd 中的最大 gcd(e.g.{1,2,3,6} 的 imperfection 为 3),现在给定一个原始集合长度为n,集合内的元素为(1~n),让
阅读全文
摘要:Long Beautiful Integer 思路: 对于n位数来说,全为9一定是beautiful的,所以结果的m一定是等于n的。因为要求第i位于第i+k位相等,所以数的值实际上是取决于前k位的,因为需要大于等于原字符串,所以可以直接取原字符串的前k位,构造出新的字符串b,如果b>=a,就可以直接
阅读全文
摘要:Modulo Equality 关键:a数组中的数变换后与b数组中的数唯一对应 AC_Code 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn=2010; 5 con
阅读全文
摘要:Farming Mars 预处理优化 AC_Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstring> 5 #include <cmath> 6 #include <queue> 7
阅读全文
摘要:P1667 数列(离散化+思维) 对于一个区间【x,y】,设这个区间的总和Σa[i](从i==x 到 i==y)。 那么我们在前缀和(设为sum【i】)的意义上考虑到原操作其实就是sum【x-1】+= S,sum【x】+ S - S,sum【y】 -= S,sum【y+1】+ S - S。 而我们可
阅读全文
摘要:Scapegoat 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <queue> 5 #include <cmath> 6 #include <ctime> 7 #include <algorith
阅读全文
摘要:Time of Trial(思维) 题目大意:一个人想逃,一个人要阻止那个人逃跑 ,阻止者念每一个符咒的时间为b[i],逃跑者念每一个符咒的时间为a[i],逃跑者如果念完了第i个符咒,阻止者还没有念完或者刚好念完这第i个符咒,此时逃跑者就可以逃跑了。(每个人都不知道对方在念哪一个符咒) 队友给讲的解
阅读全文
摘要:I Count Two Three 二分查找用lower_bound 这道题用cin,cout会超时。。。 AC代码; 1 /* */ 2 # include <iostream> 3 # include <cstring> 4 # include <string> 5 # include <cst
阅读全文
摘要:题目链接:Doors Breaking and Repairing 题目大意:有n个门,先手攻击力为x(摧毁),后手恢复力为y(恢复),输入每个门的初始“生命值”,当把门的生命值攻为0时,就无法恢复了。问:最多可以把几个门的生命值攻为0。 思路:(1)当 x>y 的时候肯定所有的门的生命值都能降为0
阅读全文
摘要:题目链接:Glider Gym-101911B 解题分析:下落的高度一定,是h。在没有气流的地方每秒下落1;所以可以转化为经过无气流地带的时间总长为h。 那么很显然从一个有气流地带的开始,选择下落,那么问题来了,一个一个去试然后一个一个计算他的路径去维护一个最大值吗?未免太过麻烦,所给数据有 那么大
阅读全文
摘要:题目链接:http://codeforces.com/gym/101755/problem/K 题目理解: 一家公司想让n个人给他们的产品评论,所以依次去找这n个人,第i个人会评论当且仅当已经有ai个人评论或他确实对这个产品感兴趣,但是这n个人都不对这个产品感兴趣,问这个公司至少要说服几个人对该 产
阅读全文

浙公网安备 33010602011771号