- 博客(194)
- 问答 (2)
- 收藏
- 关注
原创 强联通分量targin模板(poj2186)
http://poj.org/problem?id=2186//poj2186 强联通图模板 节点数1W 边数5W 79ms G++ #include<stdio.h> const int sz = 50000+10; struct Edge { int to; int next; }; Edge edge[sz]; //存放边 int head[sz]={0};//每...
2018-05-11 21:47:24
559
原创 LCA 离线targin模板
参考文章:https://www.cnblogs.com/jsawz/p/6723221.html 模板题目:POJ1330 有根树 节点1W,查询1次 , 耗时:282ms //targin 模板 2018.5.8 #include<stdio.h> #include<memory.h> #include<set> using namespace ...
2018-05-08 23:29:49
3084
原创 hdu1532 Drainage Ditches(最大流模板)
EK 算法 复杂度 n*m*m https://blog.csdn.net/x_y_q_/article/details/51999466 Dinic算法 复杂度 m*n*n https://www.cnblogs.com/SYCstudio/p/7260613.html 本来这道题 Dinic 和 EK 复杂度应该一样,不知道为什么 EK 0ms Dinic15ms EK: #in
2018-04-20 17:57:49
201
原创 hdu 1431 素数回文(打素数表)
https://vjudge.net/problem/HDU-1431 关键: 1.找某个范围内素数的个数,先采用素数打表预处理(就是在输入之前判断好了哪些是素数)效率高,.否则超时,用一标志数组isPrime[i] 记录这个数i是不是素数,为了避免超内存,这个数组是bool类型 2.题目给的范围到了10亿,依然会超内存,怎么缩小这个数组的大小?我们只有自己在机上先跑一
2018-01-04 18:39:04
325
转载 大数相乘
原文: https://www.cnblogs.com/jason-yang/archive/2012/04/26/2472755.html 算法题-大数相乘问题 今天在网上看到一个大数相乘的问题,题目是这样的:输入两个整数,要求输出这两个数的乘积。输入的数字可能超过计算机内整形数据的存储范围。 分析: 由于数字无法用一个整形变量存储,很自然的想到用字符串来表示一串数字。然后按照乘
2018-01-04 00:25:35
366
转载 XML中关于DTD类型(内部(SYSTEM)的和外部(PUBLIC)的区别)
DTD是什么?Document Type Definition——文档类型定义。 在做自定义标签的时候,写标签库定义文件tld时,要写一大段东东:。当时只知道拷贝、粘贴,也没有去想这是什么东西。今天才知道,这玩意儿叫DTD。是为了规范xml文档元素编写的。 DTD的语法规定,DTD的所有关键字都是大写的,如DOCTYPE,ELEMENT等,它分为两种。 1、内部DTD。注意的是在元素名后面一
2017-12-02 09:41:24
5598
原创 hdu 1712 ACboy needs your help(分组背包模版)
原题: http://acm.hdu.edu.cn/showproblem.php?pid=1712 //分组背包 //dp[k][v]表示前k组物品花费费用v能取得的最大权值 //dp[k][v] = max(dp[k-1][v],dp[k-1][v-Ci]+Wi)| i= 1..group[k]); #include int max(int a,int b) { if(a>=b)r
2017-11-14 21:12:21
225
转载 java mkdir()和mkdirs()区别
源: http://blog.csdn.net/cnnumen/article/details/8463736 mkdirs()可以建立多级文件夹, mkdir()只会建立一级的文件夹, 如下: new File("/tmp/one/two/three").mkdirs(); 执行后, 会建立tmp/one/two/three四级目录 new File("/tmp/one/two/th
2017-11-13 17:59:54
302
原创 hdu2639 Bone Collector II (01背包第k优解模版)
原题: http://acm.hdu.edu.cn/showproblem.php?pid=2639 在01背包上多加一维 [k] 表示该状态的第k个最优解 #include int main() { int t; scanf("%d",&t); while(t--) { int n,m,k; int v[101];
2017-11-12 21:56:10
253
原创 poj1014 Dividing(多重背包的二进制优化)
原题: http://poj.org/problem?id=1014 一开始知道是多重背包,然后自己弄成01背包就交了,结果超时,所以百度后才知道需要用二进制优化 举个例子,假如说物品i有10个,单价为 2,而最后的最优结果取i是7个。传统的做法就是直接化成01背包,也就是把10个物品i看成10个一模一样的物品(w=1,v=2)然后送去dp 改良的方法就是压缩这个数量10: 我们可以把数量1
2017-11-12 10:20:52
288
原创 Game Of Sum(区间dp)
原题: https://vjudge.net/problem/UVA-10891 大致题意: 有一个游戏,A和B两个玩家,还有一串数字,每个玩家每次可以从这串数的左边或者右边取一个或者几个连续的数,规定A先取,然后轮到B,依次交替,直到所有的数都取完,计算A和B各自拿到的数的和,计算得出结果A-B。这个取的过程规定 A和B都十分聪明, 每次都保证使自己拿到的数的和尽量最大! 没想出来,很失
2017-11-09 23:56:26
312
原创 poj2458 Highways(最小生成树模版)
题目: https://vjudge.net/problem/POJ-2485 最小生成树算法(Prim算法讲得好): http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html 这篇Kruskal算法讲得更清楚 : http://blog.csdn.net/luomingjun12315/article/detai
2017-11-03 21:28:52
367
原创 hdu1232 畅通工程(并查集模板)
原题:http://acm.hdu.edu.cn/showproblem.php?pid=1232 #include int pre[1010];//记录每一个节点的跟节点 int find(int x)//寻找x的根节点 { int r=x; while(pre[r]!=r)//找父亲 { r=pre[r]; } //压缩,修改自己和上级的pre,全部直接变成老大 i
2017-11-03 19:45:36
260
转载 并查集算法(有趣的讲解)
转载自: http://blog.csdn.net/dellaserss/article/details/7724401/ 这个文章是几年前水acm的时候转的, 当时也不知道作者是谁, 要是有人知道的话说一下吧 并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我
2017-11-03 19:44:27
1396
1
原创 二叉树的前序,中序,后序遍历
什么是二叉树? 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”,左子树和右子树同时也是二叉树。二叉树的子树有左右之分,并且次序不能任意颠倒。 因为忘记了关于树的遍历,所以现在做下笔记。 中序+前序 求 后序 //根据前序,中序,建立树,输出后序遍历的结果 #include #include struct Node { Node *lchild;
2017-11-02 21:39:22
381
原创 单调栈及应用
单调递增栈,从栈底到栈顶依次递增(单调非递减栈:允许有相等) 单调递减栈,从栈底到栈顶依次递减(单调非递增栈:允许有相等) 单调栈的用处是什么?我举一个例子 当我们有n=6个数例如 2 3 2 5 1 4 ,从左到右遍历每一个数字,并求出以该数字为最小值,所能延伸的最大区间(这个区间的数都>=它),比如第一个数2,以它为最小值,所能延伸的最大区间是[{2,3,2,5} ,对于第二个数字
2017-10-19 07:41:05
3365
原创 使用commons工具包出现 java.lang.ExceptionInInitializerError
今天用commons下的beanutils类,把一个Map封装成一个bean对象时出现 java.lang.ExceptionInInitializerError 因为导错包了,myeclipse默认提供的包是import com.sun.org.apache.commons.beanutils.BeanUtils; 导这个包就会出现上面的错误,具体原因我也不清楚。 我们需要导入自己的包,
2017-10-10 07:13:14
528
原创 Control character in cookie value, consider BASE64 encoding your value
如果给一个Cookie的value设置中文,如:response.setCookie("username","张三"); 因为没有将中文转化为16进制的格式,就会报上面的错误 可以实现对字符串的编码, String encodeName=URLEncoder.encode("张三","UTF-8"); response.setCookie("username",encodename); 如果
2017-09-25 22:17:51
311
转载 编程语言 标记语言 脚本语言分别有哪些? 区别是什么?
编程语言 标记语言 脚本语言分别有哪些? 区别是什么? 著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:蔡超凡 链接:http://www.zhihu.com/question/22443881/answer/48223449 来源:知乎 一、各自的定义 标记语言 标记语言,是一种将文本(Text)以及文本相关的其他信息结合起来,展现出关于文档
2017-09-24 20:23:11
2057
原创 poj2231 Moo Volume
原题:http://poj.org/problem?id=2231 思路: dp[i]表示前i个location的Volume值,将输入数字排序,根据规律推出转移方程:dp[i]=dp[i-1]+(i-1)*2*(a[i]-a[i-1]); #include #include using namespace std; typedef long long ll; int cmp(const
2017-09-23 07:43:22
273
原创 poj 2181 Jumping Cows
原题: http://poj.org/problem?id=2181 思路:有p个数,每个数都是正数,从左到右 每次我们可以从中选1个数,在第偶数次选中的数,我们要减去arr[i],在奇数次选中的数,我们可以加上它arr[i],问最后能够得到的结果最大是多少? 思路:ou[i]表示前i个取偶数个的得到最大值 , ji[i]表示前i个取奇数个的得到的最大值 如果第i个数是奇数次被选到的
2017-09-16 16:30:51
316
原创 poj2063 Investment(完全背包)
原题: http://poj.org/problem?id=2063 思路:因为bond的价格是1000的倍数,所以把总钱数和bond的价格压缩1000倍,再进行完全背包就可以了。 //完全背包 #include #include int main() { int t; const int bei=1000; scanf("%d",&t); while(t--) { int mo
2017-09-13 14:55:45
279
原创 poj2029 Get Many Persimmon Trees
原题: http://poj.org/problem?id=2029 思路: 类似求矩阵中 最大子矩阵和, 在合并s行后, 求连续 t 个元素的最大和 #include #include int main() { int n; const int size=101; scanf("%d",&n); while(n!=0) { int dp[size][size]={0};
2017-09-12 21:10:17
295
原创 poj2018 Best Cow Fences(求至少k个连续数 使得平均值最大)
原题: http://poj.org/problem?id=2018 题意:找至少连续的k个数,使得这k个数的平均值最大. 思路:用两个数组 f[i] num[i], 表示对于第i个数,我们取i(包括arr[i])之前连续num[i]个数,得到和为f[i], 可以使得平均值最大。 情况一: f[i]=f[-1]+arr[i] num[i]=num[i-1]+1 表示我们把这个数ar
2017-09-12 19:39:12
2122
转载 mysql的下载与安装
原文: http://www.cnblogs.com/tyhj-zxp/p/6693046.html#undefined 感谢作者! 下载 打开:https://www.mysql.com/downloads/ 1.点击该项:, 2. 进去后点击: 3.到了真正的下载页面,选择平台,选择版本(安装版和免安装版),下载 4,我现在下载免安装版的“Windows (x86
2017-09-11 22:55:54
379
原创 poj1975 Median Weight Bead(floyd || 暴搜)
原题: http://poj.org/problem?id=1975 这题一开始没有想到floyd,就去搜索,结果还过了,虽然时间很长用了200+ms,但也是挺爽,后来去查才知道floyd才是解题方案,下面是两种方法 其实佛洛依德很好用,可以存负权值边而且代码很容易记住,就是复杂度有点高,要记住....求任意两点的最短路,或者关系,首选floyd floyd 16ms #include
2017-09-10 08:34:50
300
原创 poj1959 Darts
原题: http://poj.org/problem?id=1959 //问题简化为,给出n个数,取其中3个凑成指定的数字有多少种情况?数字可以重复使用 //每一轮可能出现的分数只有63种情况,三层遍历找出三轮数字相加,判断是否等于给定数字 //一开始总觉得是整数划分,挑了很久还是WA,看了答案才知道是枚举...脑子没绕过弯,很沮丧,下次要想清楚 #include int main()
2017-09-09 08:44:27
438
原创 poj1958 Strange Towers of Hanoi(递归)
原题:http://poj.org/problem?id=1958 把汉诺塔问题拓展为4根,递归方法题目已经给出。天呐,我竟然理解错题意了,wa了好几次,要哭了。 #include const int M=0x7fffffff; int dp[13]={0};//记录移动n根从A->D的最小步骤 int three(int n) { if(n==0) { return 0; }el
2017-09-07 10:50:49
340
原创 poj1952 BUY LOW, BUY LOWER(最长递减子序列及个数)
原题: http://poj.org/problem?id=1952 就是求最长递减子序列dp ,以及求不同的子序列的个数r ...思路和代码较长,请大牛见怪莫怪... 想法:我们需要在求最长递减子序列的过程中加一些额外的步骤,顺便把不同的子序列数目也算出来....明白下面两点其实就差不多了...详细过程看不看都行.. 首先要明白:1. 对于相同的两个数ai,aj,ai在aj之前,一定有
2017-09-06 17:51:04
348
原创 poj1690 (Your)((Term)((Project))) (括号配对)
原题: http://poj.org/problem?id=1690 思路:根据括号配对原则 得出每一个括号的位置k[i]=j 表示左半括号(在位置i,右半括号)在位置j 我们根据'('出现的顺序,从左到右遍历每一个括号,对于每一个括号有下面四种情况要删除这个括号: 1. 如果'('左边全是空格,或是在第一个字符,或者 '(' ')'中间只隔了一个数字即 j-i==2 ,这个括号
2017-09-05 11:49:08
350
原创 poj1664 放苹果
原题: http://poj.org/problem?id=1664 这题没想出来,总觉得像之前看过的整数划分,然后就去查了一下整数划分,再去做就过了。这题数据小可以用递归做,自己也没想出来递归方式,还是太渣了。 百度上面很详细地讲了怎么用递归做整数划分,我也看了一下动态规划的算法,两个都学习学习,多学一点没坏处。 经典算法:递归整数划分 https://baike.baidu.com
2017-09-04 18:21:04
249
原创 poj1456 Supermarket
原题: http://poj.org/problem?id=1456 解法1:stl+ priority_queue 很好的思路 79ms #include #include #include using namespace std; struct W { int v; int d; }w[10010]; bool operator <(W a,W b) { return a.
2017-09-03 12:53:35
250
原创 poj 1414 Life Line
原题: http://poj.org/problem?id=1414 通过输入可以知道空格的数目n,然后遍历这n个空格,每一次循环 中第i个空格 填上数字,然后通过搜索找到这种情况下可以获得的最大分数,直到n个空格遍历结束。 还没学过搜索,不过这题总让我感觉这应该就是搜索...... //搜索,可怕,做了一下午,不过ac了还是很有成就感,多练多练 #include #include #
2017-09-02 17:52:21
416
原创 uva993 Product of digits
原题: https://vjudge.net/problem/UVA-993 很久之前没有做出来的题,今天偶然看到有了思路做了一下,就AC了,痕激动很开心,加油渣科! #include #include #include using namespace std; //找9~2之间的因子,从大的找起,如果最后除不尽就返回-1,找到的压进multiset中 multisets1; int
2017-09-01 17:49:25
323
原创 poj1208 The Blocks Problem(模拟)
原题: http://poj.org/problem?id=1208 题意:有n个块(编号:0~n-1),并且有n个位置 0 ~ n-1,一开始的时候这个块都放在对应编号的位置上 我们可以对这些块有4种操作 操作1: move a onto b :把a和b上面的所有的块放回原来一开始的位置上,然后把a放在b上面 操作2: move a over b:把a上面的块恢复到一开始的位置上,再把a
2017-09-01 17:44:13
963
转载 背包的二进制优化
原文: http://blog.csdn.net/qq_33171970/article/details/50582671 关于二进制优化这一点,它为什么正确,为什么合理,凭什么可以这样分,至少我是花了很久很久才理解的,先拿一道题来说吧。 HDU 2844 Coins 题目链接:http://acm.hdu.edu.cn/showproblem.PHP?pid=2844 题目:
2017-08-28 09:51:31
286
原创 poj2192 Zipper
原题: http://poj.org/problem?id=2192 思路: 设字符串str1,最后一个字符是c1,长度为len1;字符串str2,最后一个字符是c2,长度为len2;合并结果为str3,最后一个字符是c3,长度为len3; 我们比较c1,c2,c3;如果str3是由str1,str2合并而来,那么只有两种情况 ①c1==c3 ,str1的前len1-1个字符和st
2017-08-27 16:16:05
323
原创 hdu1950 poj1631 Bridging signals(n*logn的最长递增子序列)
最长递增自序列: http://www.cnblogs.com/lonelycatcher/archive/2011/07/28/2119123.html //在为dp[i]找上一个状态dp[j]时,用常规顺序搜索会超时,要改用用二分。 #include #include using namespace std; int max(int a,int b) { if(a>=b)return
2017-08-25 11:33:28
252
转载 记忆化搜索
原文: http://www.cnblogs.com/fu11211129/p/4276213.html 感谢作者。 一. 动态规划 动态规划(dynamic programming),与“分治思想”有些相似,都是利用将问题分 为子问题,并通过合并子问题的解来获得整个问题的解。于“分治”的不同之处在 于,对于一个相同的子问题动态规划算法不会计算第二次,其实现原理是将每一个计算过的子问题
2017-08-21 16:52:20
623
原创 nyoj248 BUYING FEED
原题: http://acm.nyist.net/JudgeOnline/problem.php?pid=248 //nyoj 248 //贪心:关键在于把路程的费用也加入到商品的单价中来,然后每次买单价最低的商品 就可以了。 #include #include #include #include using namespace std; struct W { int wi; i
2017-08-12 07:47:44
391
空空如也
请问在Eclipse 中 这种JRE配置是什么意思?
2018-12-23
Hibernate中的Session应该在何处关闭?
2018-01-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅