08 2017 档案
摘要:The Balance Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 7294 Accepted: 3206 Description Ms. Iyo Kiffa-Australis has a balance and only
阅读全文
摘要:Duizi and Shunzi Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 73 Accepted Submission(s): 30 Pr
阅读全文
摘要:CS Course Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 52 Accepted Submission(s): 30 Problem D
阅读全文
摘要:A Math Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 88 Accepted Submission(s): 45 Prob
阅读全文
摘要:状态转移方程如下: 当i > j时,dp[i,j]= 0。 当i = j时,dp[i,j] = 1。 当i < j并且str[i] == str[j]时,dp[i][j] = dp[i+1][j-1]+2; 当i < j并且str[i] ≠ str[j]时,dp[i][j] = max(dp[i][
阅读全文
摘要:Description We give the following inductive definition of a “regular brackets” sequence: the empty sequence is a regular brackets sequence, if s is a
阅读全文
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=5230 题意:给定n,c,l,r。求有多少种方法从1~n-1选取任意k数每个数的权重为其下标,使得这些数字之和加上c之后在l,r范围内。 题解:第一反应是计数01包,但是范围给定的n太大,TLE。。。 然后仔
阅读全文
摘要:1.将n个不同的数字组成的集合划分成若干个元素每个元素不大于m的集合: 2.将n划分成k个数的划分法: 另一种方式: hzwer思路 Orz 拓展:还有一个划分为不超过k组的问题
阅读全文
摘要:题意:有m个工程,一台机器在同一时间只能运行一个工程,告诉你每个工程的起始时间和结束时间,求出最少要多少个机器以及最小的机器总运行时间(机器开始了就不能停了,直到用完该台机器才停止)。 题解:由于这里可以使用多台机器,那么我们用起点排序也能够得到最小的k。(对比了下典型的区间调度问题,那个问题由于只
阅读全文
摘要:题意:给你n个挂钩,m个砝码,要求砝码都用上,问有多少中方案数 题解:对于这道题目的状态,我们定义一个变量j为平衡度,当j=0的时候,表明天平平衡。定义dp[i][j]表达的含义为使用前n个砝码的时候,平衡度为j的方案数。计数类型的背包,更新的时候把每个砝码的所有可能贡献(每个砝码可以放在不同的钩子
阅读全文
摘要:http://poj.org/problem?id=3253 题意: FJ需要修补牧场的围栏,他需要 N 块长度为 Li 的木头(N planks of woods)。开始时,FJ只有一块无限长的木板,因此他需要把无限长的木板锯成 N 块长度为 Li 的木板,Farmer Don提供FJ锯子,但必须
阅读全文
摘要:题意:给出指路石的范围,问最小需要几个指路石可以覆盖所有的军队。 题解:排序一遍,然后扫出起始区间和终止区间,就可以求出最小的覆盖数了 ac代码:
阅读全文
摘要:比赛的时候扣了一道贪心的题目,不会写,,现在补一补一些基础的贪心。 题意:给定一个字符串s,要求按下列操作生成一个新串t--每次从s串中的最前和最后取一个字符给t,要求生成的t字典序最小。 题解:由于是要求字典序最小,满足局部最优的思想贪心的取就可以了(这里要注意的是相等的情况) ac代码:
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5212 题意:忽略。。 题解:把题目转化为求每个gcd的贡献。(http://www.cnblogs.com/z1141000271/p/7419717.html 和这题类似 反向容斥)这里先用容斥写了,mobio
阅读全文
摘要:题意:如果一个子序列的GCD为1,那么这个子序列的价值为0,否则子序列价值为子序列长度*子序列GCD 给出n个数,求这n个数所有子序列的价值和 题解:首先得想到去处理量比较少的数据的贡献,这里处理每个gcd的贡献。我们定义f(i)为gcd==i的倍数时的贡献,那么f(i)=c(0,n)*0+c(1,
阅读全文
摘要:题意: 给出两个字符串,第一个字符串只包含小写或者大写字母,第二个字符串包含小写或者大写字母或者特殊字符“.”和“*”,这里“.”可以替换为任意字符,但是不能变成空。 这里“a*”可以变成空串,可以变成a,也可以是aa,也可以是aaa,还可以是aaaa.以此类推,不限长度。 问第二个串和第一个串是否
阅读全文
摘要:虽然题解上说缩点然后判断入度就可以了,然后比赛的时候瞎暴力过了。
阅读全文
摘要:题解:和前面的多校的一道题目类似,顺序遍历的时候,a元素是比b要小的。用求出来的a去筛一遍b就可以了。
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4333 关于kmp next数组求最短重复字串问题请看;http://www.cnblogs.com/z1141000271/p/7406198.html 扩展kmp请看:http://www.cnblo
阅读全文
摘要:题解: KMP中next数组的巧妙运用。在这里我们假设这个字符串的长度是len,那么如果len可以被len-next[len]整除的话,我们就可以说len-next[len]就是那个最短子串的长度为什么呢? 假设我们有一个字符串ababab,那么next[6]=4对吧,由于next的性质是,匹配失败
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6153 扩展kmp不理解的看下:http://www.cnblogs.com/z1141000271/p/7404717.html 大致题意:给定一个a串作为 母串,然后b作为模式串, f【i】 为b的后
阅读全文
摘要:https://wenku.baidu.com/view/8e9ebefb0242a8956bece4b3.html 参考了这个ppt 理解起来还是有点费劲的(还是推荐一下这个课件 里面概念和思路给的比较全) 关键点 在extend[1...k]都已经求出来的情况下,求extend[k]。 关键利用
阅读全文
摘要:题意:有m种字符,要求构造两段长度为n的字符串,其中这两段不能有相同的字符 枚举左边选了i种字符,右边可以选1,2....min(n,m-i)种字符 这样就把问题转化为用k种字符构造n长度的字符串的种类有多少种 容斥:单独考虑每一位上的字符都有k种选择,k^n,但会有不够k种的情况,所以要减去只有k
阅读全文
摘要:题解:这道题中的数能组成的数构成了一个连续区间. 一开始只有 a1 的时候能够构成 [-1, 1][−1,1] 中的所有整数. 如果一堆数能够构成 [-a, b][−a,b] 中的所有整数, 这时候来了一个数 x. 如果 x 只能取正值的话, 如果有 x<b 那么就能够构成 [-a, b+x][
阅读全文
摘要:和前面的开关问题差不多,就是要理解一下我们方程等号的右端代表的含义是什么。我们建立的方程是想让对位的位置变或者不变,然后生成增广矩阵的时候要多注意一点。 ac代码: #include #include #include #include #include #include #include #inc
阅读全文
摘要:题意:有一个5 * 6的矩阵,每个位置表示灯,1表示灯亮,0表示灯灭。 然后如果选定位置i,j点击,则位置i,j和其上下左右的灯的状态都会反转。 现在要你求出一个5 * 6的矩阵,1表示这个灯被点击过,0表示没有。 要求这个矩阵能够使得原矩阵的灯全灭。 题解:构造一个30 X 31增广矩阵(一个有3
阅读全文
摘要:扣了一个高斯的介绍 比较全面(来自http://blog.csdn.net/duanxian0621/article/details/7408887) 高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。高斯消元法的原理是:若用初等行变换将增广矩阵
阅读全文
摘要:(借鉴了 http://blog.csdn.net/mengxiang000000/article/details/77200451的思路很厉害) 题目大意: 设定b【i】=a【1】^a【2】^a【3】^..................a【i】; 每进行一次,我们可以从a数组得到一个b数组。问进
阅读全文
摘要:由于每个串的长度为5000,我们去枚举两个自串的对称点(这里注意一下,枚举的时候有两种情况的区间),然后用尺取法爬一遍。 ac代码:
阅读全文
摘要:存下值和下标后排序,每次从坐后面开始取就可以了。 ac代码:
阅读全文
摘要:题意:求解区间a~b与n互质数的个数 题解:转化为1~b与n互质数减去1~a与n互质数的个数,典型的容斥。(由于这里数据范围太大,莫比乌斯就不适用了,直接用容斥枚举质数的组合,负责都根号n) 补充:2017.8.18 多校的容斥没写出来,整理一下。一般容斥的思路,求解逆问题。这道题目的逆问题就是不与
阅读全文
摘要:题意:给出n个数,问有多少组(a,b,c,d)公约数为1。 题解:有两种思路,一个是mobius反演,一种是容斥。 先介绍一下容斥的思路:我们考虑该问题的逆问题,求多少组数的gcd>=2,那么集合gcd为质数的交集就是我们要答案咯。枚举出每个素数乘积的因子数字,然后容斥筛一遍就可以了 (2017.9
阅读全文
摘要:签到题目,排序然后按序清理掉一定会输的结果就可以。 ac代码:
阅读全文
摘要:题解: 如果 Bi 是 B 数组中除了 B0 以外第一个值不为 00的位置,那么显然 ii 就是 AA 中的最小数。 现在需要求出删掉 i后的B数组,过程大概是反向的背包,即从小到大让 b[j]-=b[j-i]。(类似筛法的思想) (这里顺序推过去的时候,我们把j-i看做一个组,当i要消去
阅读全文
摘要:题解:考虑贪心地一条一条边添加进去。 当 m \leq n-1m≤n−1 时,我们需要最小化距离为 nn 的点对数,所以肯定是连出一个大小为 m+1m+1 的联通块,剩下的点都是孤立点。在这个联通块中,为了最小化内部的距离和,肯定是连成一个菊花的形状,即一个点和剩下所有点直接相邻。 当 m > n-
阅读全文
摘要:#include #include #include #include #include #include #include #include #include using namespace std; long long n,m; long long a[200005],b[200005]; long long k[20050],p[20050]; long long d[5005][21]...
阅读全文
摘要:和睦数三元组的个数问题 给出一个整数 。选出a, b, c (其中2<=a<b<c<=n),组成和睦三元组,即: · 或者满足 , , · 或者满足 首先,我们考虑它的逆问题:也就是不和睦三元组的个数。 然后,我们可以发现,在每个不和睦三元组的三个元素中,我们都能找到正好两个元素满足:它与一个元素互
阅读全文
摘要:我们直接求解不好处理,那么反向考虑,四个边至少有一条边没有解的情况 ac代码:
阅读全文
摘要:#include #include using namespace std; char mp[8][28]; int f(int pos) { int ret=0; for(int i=0;i<7;i++) { for(int j=pos;j<pos+4;j++) { if(mp[i][j]=='X') ret+...
阅读全文
摘要:// 对于延迟更新,我们在updata 和query的时候 pushdown和pushup两个东西都要存在 #include #include #include #include using namespace std; typedef long long ll; struct node { ll l,r,sum,add; } tree[10000*4]; ll a[100001...
阅读全文
摘要:比赛的时候把公式扣出来了,,但是没有想到用筛法算公因子,,默默学习一下。。 题解:设n=p1^(c1)p2^{c2}...pm^{cm},n=p1^c1*p2^c2...pm^cm,则d(n^k)=(k*c1+1)(k*c2+1)...(k*cm+1)d(n
阅读全文
摘要:这段时间写多校,碰到很多数据量很大的题目,有的有规律,有的需要一定的预处理以及一些好玩的算法。那么怎么区分呢?首先看下题目给的限时,如果比较多,那么就需要一定预处理啦:再就是看下rank,如果一道题目突然很多人短时间写出来,一定是规律题,而且是巧妙的规律题。在说一下关于贡献这个东西,有些题目需要枚举
阅读全文
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=6058 分析题目的时候,由于枚举的区间很多,而第k大的值范围小,应该要想到去枚举第k大的值然后找到这个值对答案的贡献。 题解:我们只要求出对于一个数x左边最近的k个比他大的和右边最近k个比他大的,扫一下就可以
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6053 题意:给定一个数组,我们定义一个新的数组b满足bi<ai 求满足gcd(b1,b2....bn)>=2的数组b的个数 题解:利用容斥定理。我们先定义一个集合f(x)表示gcd(b1,b2...bn)为x倍数
阅读全文
摘要:题目:给你一个数n以及m个数字,问1~n中不能被这m个数字整除的数字的个数。 分析:容斥原理、组合数学。数字1-n中能被a、b整除的数字的个数分别是n/a,n/b; 则1-n中能被a或b整数的数字个数为n/a + n/b - n/lcm(a,b), (最后一项为同时被a、b整除的数字个数); 推广后
阅读全文
摘要:(转自 http://www.cppblog.com/vici/archive/2011/09/05/155103.html 找了一大堆博客 还是这个实在 中间加入了一点自己的理解)容斥原理 原作:e-maxx(Russia) 发表于 2011.8.25 翻译:vici 对容斥原理的描述 容斥原理是
阅读全文
摘要:前几天多校的时候碰到一道莫比乌斯的题目,一脸懵逼,然后恶补了几道。 先看下莫比乌斯的基本概念: 定理:和是定义在非负整数集合上的两个函数,并且满足条件,那么我们得到结论 在上面的公式中有一个函数,它的定义如下: (1)若,那么 (2)若,均为互异素数,那么 (3)其它情况下 来自acdreamer大
阅读全文