//目录
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页
摘要: 题目:HDU 3037 题意:有n个树,m个坚果,放到n个树里,可以不放完,有多少种方法。 分析: 得到组合数了。 大组合数什么费马小定理,Lucas定理都来了; 总的说,不能用二维地推了,用的却是组合数的定义。 一般来说大组合通常要取模。 那么不能边乘边模,边除边模,等式不会成立。 根据逆元,除以 阅读全文
posted @ 2017-08-02 20:36 小草的大树梦 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 求两个高精度的乘法。 根据高位低位,填入多项式的系数,求两个卷积,然后进位操作。 阅读全文
posted @ 2017-08-02 10:39 小草的大树梦 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题意:从一个发射站发射电视,只有叶子节点是用户,收到一部分费用,所有的边都有花费,求在不亏本的情况下,最多可以让多少用户(叶子结点)收看到电视。 分析:树形背包。 状态定义: dp(i,j) : 以 i 为根的,让 j 个用户看到电视,最大获益(可以为负数)。那么sz不再是原来的定义了。 最后遍历 阅读全文
posted @ 2017-08-01 09:36 小草的大树梦 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 次最大公约数 = gcd / 其中一个数质因数中最小的。 gcd(42,12) = 6; div(42) = 2*3*7 div(12) = 2^2*3 sgcd(42,12) = 6 / 2 = 3; 之前素数筛选,分解质因数总是找模板,整理后就用红书上的模板了。 阅读全文
posted @ 2017-07-31 15:45 小草的大树梦 阅读(231) 评论(0) 推荐(0) 编辑
摘要: Description 对于csuxushu来说,能够在CSU(California State University)组织2017年的ACM暑期集训让他感到十分荣幸。 csuxushu是一名充满梦想的程序员,因此他也希望来参加暑期集训的ACM萌新们和他一样怀揣着书写CSU-ACM历史的梦想。 一个 阅读全文
posted @ 2017-07-31 11:26 小草的大树梦 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 后缀数组裸题,求排名第1~n的后缀,想相邻后缀的最长公共前缀。 集训队模板就是硬lO(∩_∩)O哈哈~ 阅读全文
posted @ 2017-07-31 10:26 小草的大树梦 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题意:每条边的长度是1,求访问k个节点,最少走多远。 分析:贪心,首先走直径len,走完直径len+1个点后,走剩下的点(k-len-1),而走这些点最少一定为(k-len-1)*2。 证明:反证法,要是比(k-len-1)*2还短,那么之前的直径len,就不是直径了。 阅读全文
posted @ 2017-07-31 09:34 小草的大树梦 阅读(255) 评论(0) 推荐(0) 编辑
摘要: LCA模板题。 DFS记录好,到根结点的距离。 #include <bits/stdc++.h> using namespace std; const int maxn = 40000+5; const int logmaxn = 20; struct Edge { int to,w; }; std 阅读全文
posted @ 2017-07-29 22:49 小草的大树梦 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个数组,求[l,r] 区间,区间里的素数,数组中,能被这个素数整除的个数,再求和。 分析:区间很大,10^9了,找去区间内的素数是不可能的,但是,数组的数很小,而且要能整除区间内的素数,所以,这些很大的素数是没用的,筛出10^7以内的素数就ok了。 怎么算个数呢? 质因数分解,hash一 阅读全文
posted @ 2017-07-29 17:13 小草的大树梦 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 题意:求菲波那切数列的第n项。 分析:矩阵快速幂。 右边的矩阵为a0 ,a1,,, 然后求乘一次,就进一位,求第n项,就是矩阵的n次方后,再乘以b矩阵后的第一行的第一列。 阅读全文
posted @ 2017-07-29 15:14 小草的大树梦 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题意:一排n长度的砖,有四种颜色,红色绿色是偶数,有少染色方式。 分析: 泰勒展开式: chx = (e^x+e^(-x))/2 = 1 + x^2/2! + x^4/4! + x^6/6! + ... ...shx = (e^x-e^(-x))/2 = x + x^3/3! + x^5/5! + 阅读全文
posted @ 2017-07-29 10:12 小草的大树梦 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个a数组,求b 数组的方案数,但是要求两者乘积相同。 分析: 不可能将它们乘起来,对于每个数质因数分解,得到每个质因子个数,遍历这些质因子,将某个质因子放到 对应的盒子里面,可以不放,方案数就是一个组合数,用插板法。 这里的素数板子挺好的,一方面可以用来判断,一方面存起来。 组合数,可以考 阅读全文
posted @ 2017-07-28 22:01 小草的大树梦 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个有向图带权图,求最长严格递增链的长度。 分析: 定义 dp(i) 以 节点 i 开头的最长长度,要保证上一条边很长,而且权值很小,很难把控。 定义 f(i) 以节点 i 结尾的最长长度。 但是要严格递增,节点节点间转移也不好搞,于是以边为对象。 首先对边排序分层,后面的边,一定大于等于前 阅读全文
posted @ 2017-07-28 17:04 小草的大树梦 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 注:梅森素数,数组表示的是2^n-1的n,指数。 阅读全文
posted @ 2017-07-28 15:02 小草的大树梦 阅读(384) 评论(1) 推荐(1) 编辑
摘要: 这是一道论文题。 题意:选出第k个无平方因子的数。 思路:二分答案。 某一个区间的无平方因子的数的个数怎么求呢? 可以筛。 这里可以莫比乌斯。 首先什么是莫比乌斯函数呢? 回到本题: 他是一个莫比乌斯函数的应用。 对于1~ mid 中,不含平方因子的个数为: n - sum(i^2) 其中 i 为素 阅读全文
posted @ 2017-07-28 10:17 小草的大树梦 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 给定一个区间 [n,m],求有多少个数不含平方因子。 首先 求出不超过m的所有素数p,用p^2筛掉 [n,m] 之间的所有倍数。 欧拉公式求出素数表。 用素数的p^2筛选。 阅读全文
posted @ 2017-07-27 10:47 小草的大树梦 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 计算完后为 f(x): 根据我翻高数书,终于推倒出来了。 (~ ̄▽ ̄)~ 阅读全文
posted @ 2017-07-27 00:18 小草的大树梦 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 6034:给每个字母26进制的贪心。例如一个字母 c = 7*26^89 + 6*26^50.... 这个字符串有10^5长度。普通的大整数会超时,这里要稀疏这个大数一个pair<int,int> 型即可 (89,7),计算好每一个字母的贡献值,排序。 前导0的处理是,如果要用到0了,说明所有字母都 阅读全文
posted @ 2017-07-26 11:39 小草的大树梦 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 好厉害,好漂亮。 http://www.cnsecer.com/460.html 安装Sublime Text 3插件的方法: 朋友们,小站活着不容易,全靠广告费养着了,如果本文对你有帮助。麻烦动下手点下页面的广告吧,谢谢! 安装Sublime text 2插件很方便,可以直接下载安装包解压缩到Pa 阅读全文
posted @ 2017-07-26 00:33 小草的大树梦 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题意: 分析:删去一个数,能得到一个新结果,枚举删去的点,左右两边预处理好。 #include <bits/stdc++.h> using namespace std; const int maxn = 100000+5; typedef long long LL; int a[maxn]; int 阅读全文
posted @ 2017-07-24 21:33 小草的大树梦 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题意:动态查询区间的gcd,和gcd的值的个数。 分析:gcd的查找可以线段树,val(node) = gcd(val(left),val(val)),我是用ST表搞的。 然后查询这个值的区间有多少个。 简单说就是,这个gcd 不会很多,可以分区间hash好。 二分写的很糟。 #include <b 阅读全文
posted @ 2017-07-24 20:00 小草的大树梦 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题意:求最小生成树,和任意两个点之间距离的期望 官方题解: 最后求两遍点的积的时候,还是要判断父子关系。 注意 long long #include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 阅读全文
posted @ 2017-07-24 16:22 小草的大树梦 阅读(311) 评论(0) 推荐(0) 编辑
摘要: #include <bits/stdc++.h> using namespace std; typedef long long LL; int gcd(int a,int b) { return b ==0 ? a : gcd(b,a%b); } const int maxn = 55; int m 阅读全文
posted @ 2017-07-24 14:38 小草的大树梦 阅读(151) 评论(0) 推荐(0) 编辑
摘要: Description You are a boss who has N employers. One day, you have a message and you want to tell it to M employers of yours. As you are a funny man, y 阅读全文
posted @ 2017-07-24 10:13 小草的大树梦 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 题意: 长者对小明施加了膜法,使得小明每天起床就像马丁的早晨一样。 今天小明早上6点40醒来后发现自己变成了一名高中生,这时马上就要做早操了,小明连忙爬起来 他看到操场密密麻麻的人,突然灵光一闪想到了一个很严肃的问题: 操场上有n个人,第i个人的坐标为(xi, yi),刚开始每个人都站的很松散,现在 阅读全文
posted @ 2017-07-22 20:46 小草的大树梦 阅读(309) 评论(0) 推荐(1) 编辑
摘要: 题意:每个水果有两个值,一个美味度 a,一个卡路里 b,从中挑选一些,要求 sum(aj) / sum(bj) = k,使得 sum(a) 最大。 分析:没有那个条件就是一个01背包,可以转换,对公式变形,每个水果的重量为 a[i] - b[i] *k ,那么无论怎么挑选,都满足那个条件,价值是 a 阅读全文
posted @ 2017-07-22 16:37 小草的大树梦 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题意:一道论文题,给定一串数组,求最长的重复子串长度,其中这两个子串不重叠,这两个子串可以相差同一个数字。 分析:后一个减前一个数字,那么对于上面说的,可以相差同一个数字就变成了相同数字。问题就变成了,求一个串里面的最长不可重复的子串长度。 但是不再是height数组里面的最大值了,二分答案,将he 阅读全文
posted @ 2017-07-22 15:30 小草的大树梦 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题意:求两个字符串的最长公共字串(10^5)。枚举字串去匹配是最傻的方法啊。 分析: 很久之前就对后缀数组有所耳闻,是利用基数排序将所有后缀按照字典序排序。 sa[i] 排名第 i 的是后缀 k。 rank[i] 与 sa 互补,rank[i] 后缀 i 排在第几。 height[i] : sa[i 阅读全文
posted @ 2017-07-22 10:54 小草的大树梦 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个数字,看他最小是第几个菲波那切数列的前缀。 分析: 大数模板就是吊哦。 将菲波那切数列前500个数字放到字典树上。注意插入的时候不能像普通一样,只在尾节点处标记,而是一路标记下去。 #include <bits/stdc++.h> using namespace std; const i 阅读全文
posted @ 2017-07-21 20:44 小草的大树梦 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 之前做过这个题目,现在回想起来,又有新的柑橘。 求必须出去的骑士人数。 每一个双连通分量,如果是一个奇圈,那么一定是二分图染色失败。 依次遍历每个双连通分量,但是,对于邻接表中,有一些点不是双连通分量里面的,于是要重新编号bccno,因为割点bccno只有一个值, 但是,他要多次使用,因此要重新编号 阅读全文
posted @ 2017-07-21 17:32 小草的大树梦 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 之前做的大整数,都是一位一位操作。 优化方案:压缩方案。 模板: + - * 操作符重载 #include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<string 阅读全文
posted @ 2017-07-21 16:11 小草的大树梦 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 题意:在树的最大独立集的基础上,加上权值。求最大。 分析: 采用刷表的方式写记忆化,考虑一个点选和不选,返回方式pair 型。 首先,无根树转有根树,dp(root)。 注意的是:u不选,那么他的子节点,可以选,或者不选。WA了无数次。 #include <cstdio> #include <vec 阅读全文
posted @ 2017-07-21 11:43 小草的大树梦 阅读(559) 评论(1) 推荐(0) 编辑
摘要: 题意:有一个n个按钮的锁,按下一些按钮打开门,有多少开门方式,其中,一些按钮可以选,可以不选,选中的按钮 可以分成一些集合,集合之间无序,是同时按下的。 分析: 1、首先选择 i 个按钮,组合数 2、枚举分成的集合 3、i 个按钮分成无序集合,第二类斯特林数 4、集合之间有序,排列数 #includ 阅读全文
posted @ 2017-07-21 10:02 小草的大树梦 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题意:有n个药片,每次吃半片,吃2n天,那么有多少种吃法。 分析:如果说吃半片,那么一定要吃过一整片,用 ) 表示吃半片,用 ( 表示吃整片,那么就是求一个正确的括号匹配方案数,即卡特兰数。 卡特兰数可以DP,也有一重循环的地推表达式:Catalan(n) = 2(2n-1)*Catalan(n-1 阅读全文
posted @ 2017-07-21 09:58 小草的大树梦 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题意:每个人的工资至少888,然后有m个条件,前者比后者要多。求最少工资。 分析: 最开始的开邻接矩阵的肯定超时,如果dfs,会出现由于刚开始不是从入度为0的点出发,后期修改不了。比较麻烦。 正确方式是,用队列实现,不需要像普通队列一样,用vis数组标记,而是根据入度是否为0的标准加入队列。 1 / 阅读全文
posted @ 2017-07-20 20:44 小草的大树梦 阅读(187) 评论(0) 推荐(1) 编辑
摘要: 题意:进制问题 分析: 打表,但是要用不能 long long 型,超内存。 n! = log_{10}\sqrt{2{\pi}n} (\frac{n}e)^n 精度要求 include include include using namespace std; const double PI = a 阅读全文
posted @ 2017-07-20 17:21 小草的大树梦 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题意:两遍最长路,不能走重复点。和UVA 10806类似。 分析:拆点,u->u',MCMF,求的是最大流的最小费用,那么cost取负。 注意的是源点,源点不用拆,那么走出来的最小费用,左上角的点,右下角的点走了两遍,输出除去即可。 1 #include <bits/stdc++.h> 2 3 us 阅读全文
posted @ 2017-07-20 16:05 小草的大树梦 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题意:每个人有一个DI值,现在有一个小黑屋,这些人的顺序可以利用这个小黑屋调整,调整方式是入栈出栈方式,也就是说,这里的方案是有卡特兰数个方式。 调整后使得 d1*0 + d2*1 + d3*2 + d4*3 ...... 最小。 分析:这个题目竟然会是区间DP。 考虑区间 [ L, R ] ,那么 阅读全文
posted @ 2017-07-20 11:23 小草的大树梦 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题意:1~n个猫,有合并操作,有询问操作,合并两只猫所在的集合,询问第K大的集合。 分析:合并操作用并查集,用size维护,询问操作用Treap。注意优化,不能刚开始就把所有size = 1放到名次树中,是1的不做处理,而是不够的时候返回一个1; 1 #include <cstdio> 2 #inc 阅读全文
posted @ 2017-07-20 09:52 小草的大树梦 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 题意:全局最大割。 分析:有相应的算法,数据量很小,可以枚举源点,汇点,最大流。 这里用DFS,状态定义:分成两个集合,刚开始S集合全部点,然后一个一个放,这是一个回溯的过程。 没剪枝也过了。 剪枝技巧:当前这个节点放到T集合,比之前还小,那么一定,这个点不在T集合里面。 1 #include <i 阅读全文
posted @ 2017-07-19 21:08 小草的大树梦 阅读(233) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 20 下一页