随笔分类 -  sicily

摘要:sicily 1146 采药还是用这题来说吧,对01背包的分析看我之前那篇就好了http://www.cnblogs.com/dominjune/p/4383762.html这里主要是想改进一下二维数组的做法,用一维数组来实现01背包,也叫做滚动数组!先借用某位大牛的一句话:“01背包在二维数组上操... 阅读全文
posted @ 2015-04-08 11:48 dominjune 阅读(9514) 评论(0) 推荐(0)
摘要:http://soj.sysu.edu.cn/show_problem.php?pid=1000&cid=1769sicilyTraveling Salesman Problem有编号1到N的N个城市,问从1号城市出发,遍历完所有的城市并最后停留在N号城市的最短路径长度。Input第一行整数 T :... 阅读全文
posted @ 2015-04-08 08:34 dominjune 阅读(3264) 评论(0) 推荐(1)
摘要:霍夫曼编码,这个是把霍夫曼树也建好了的!必须把输入改为char才能ac,好坑......http://soj.sysu.edu.cn/show_problem.php?pid=1002&cid=1740 1 #include 2 #include 3 #include 4 #include ... 阅读全文
posted @ 2015-04-02 13:52 dominjune 阅读(301) 评论(0) 推荐(0)
摘要:矩阵快速幂,1001. Fibonacci 2求斐波那契第n项!毕竟数据量太大!http://soj.sysu.edu.cn/show_problem.php?pid=1001&cid=1740 1 #include 2 #include 3 4 using namespace std; 5 ... 阅读全文
posted @ 2015-04-02 13:45 dominjune 阅读(124) 评论(0) 推荐(0)
摘要:http://soj.sysu.edu.cn/1001没想到sicily的1001就那么难,动态规划,好像也不是很难想,不过得考虑清楚各种情况,很坑,好像一共是3种,还有一个注意的是,输入是合法的,如果只输入30,那就没有一种解码方法了,这样的输入是不会出现的;还有,出现05这样的,也不能算是E..... 阅读全文
posted @ 2015-04-02 13:40 dominjune 阅读(273) 评论(0) 推荐(0)
摘要:本来还觉得01背包是动态规划中比较基础的部分,没想到现在看了一下觉得好难...这题就是01Knapsack问题,我参考了一下Hawstein的blog,先来举一些例子吧:让我假设现在的背包的容量是C=10;物品编号: 1 2 3物品重量: 5 6 4物品价值:20 10 12用v[i]表示物品价值,... 阅读全文
posted @ 2015-04-01 14:28 dominjune 阅读(2389) 评论(1) 推荐(1)
摘要:最近在学习动态规划,那这题当然是动态规划了(不好意思剧透了)......刚开始做动态规划,想详细地分析一下,以便理解更深刻! 首先读题,题目意思是要求从两个集合s1,s2选出N个数对,他们的距离(差的绝对值)的和最小;因为s1集合小于s2集合,所以就是从s1中选出全部n个数字,从s2中也选出n... 阅读全文
posted @ 2015-03-31 23:19 dominjune 阅读(552) 评论(1) 推荐(0)
摘要:http://soj.sysu.edu.cn/show_problem.php?pid=1000&cid=1762这题的n达到了1000000,n^2的最长递增子序列做法肯定超时,于是有一种二分的算法,与此题完美地结合起来!达到nlogn的时间复杂度! 1 /* 2 最长递增子序列+二分查找 3 ... 阅读全文
posted @ 2015-03-29 11:53 dominjune 阅读(219) 评论(0) 推荐(0)
摘要:直接用递归做了一下,超时了,可能要再加上记忆化搜索?不会...然后再用动态规划就过了...http://soj.sysu.edu.cn/show_problem.php?pid=1002&cid=1762 1 //直接递归,tle 2 #include 3 #include 4 #include... 阅读全文
posted @ 2015-03-29 09:42 dominjune 阅读(220) 评论(0) 推荐(0)
摘要:http://soj.sysu.edu.cn/show_problem.php?pid=1000&cid=1750 题目说是单链聚类,其实就是最小生成树,输出第k-1大的边; 我用的是kruskal算法: 1 #include 2 #include 3 #include 4 #include... 阅读全文
posted @ 2015-03-24 16:52 dominjune 阅读(518) 评论(0) 推荐(0)
摘要:分治算法,每次比较左,右,和中间三个最近点对!http://soj.sysu.edu.cn/show_problem.php?pid=1001&cid=1750 Input: 4 1 3 6 10 Output: 2.000000 1 #include 2 #include 3 #include... 阅读全文
posted @ 2015-03-24 16:48 dominjune 阅读(496) 评论(0) 推荐(0)
摘要:大数取模,把输入的大数的字符串转换为整数,但同时每一步要取模(老是错在这里),不然就爆了int! ----> temp = ((temp * 10) + (s[i]-'0')) % a[j]; 1 #include 2 #include 3 #include 4 #include 5 6... 阅读全文
posted @ 2015-03-21 14:14 dominjune 阅读(196) 评论(0) 推荐(0)
摘要:DNA碱基配对,只需要注意配对过的DNA单链不能再配对了,然后就直接按题意做就行了! 1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 char s[105][105]; 8 bool used[105]; 9 1... 阅读全文
posted @ 2015-03-21 14:10 dominjune 阅读(137) 评论(0) 推荐(0)
摘要:sort排序,注意ba,b的情况,结果应该是bab而不是bba,只需要在cmp函数里判断b+ba和ba+b的大小即可! 1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 string s[10]; 8 9 bool... 阅读全文
posted @ 2015-03-21 10:21 dominjune 阅读(92) 评论(0) 推荐(0)