自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一只冰熊

拨云

  • 博客(17)
  • 收藏
  • 关注

原创 Vijos P1250 - 最勇敢的机器人

思路用并查集,然后分组背包。背包九讲造福人类。分组背包和一般的背包差不多,就是把一组作为一个点考虑。在如何把它们集中到一组想了很久,后来还是暴力了。先把它们都分好,然后扫描一遍根节点,把相同根节点的都存到一个数组里,然后遍历一遍数组。代码#include #include #include #include #include #inclu

2014-08-28 20:39:30 1025

原创 Windows下安装GDB

昨天下了个GNU,里面没包含

2014-08-27 12:47:48 15285 3

原创 Vijos P1198 - 最佳课题选择

思路dp[i][j]=min(dp[i][j],dp[i−1][j−k]+Cal(i,k))dp[i][j]表示前i个主题写j篇论文的最少时间。初始化要注意。 刚开始全部初始化为INF,WA了。有论文数是0的数据。代码#include bits/stdc++.h>#define LL long longusing namespace std;

2014-08-22 13:37:53 781

原创 Vijos P1159 - 岳麓山上打水

思路了解了一下迭代加深搜索(DFSID),就是枚举下限的DFS。枚举种类,然后依次判断。代码#include bits/stdc++.h>#define LL long longusing namespace std;const int VMAXN = 2e4 + 10;const int TMAXN = 100 + 10;const int INF =

2014-08-21 19:53:10 1739

原创 Codeforces Round #262 (Div. 2)

A - Vasya and Socks思路小明一天早上用一双袜子,老妈每隔n天的那天晚上才给他一双,求什么时候用完我是用暴力纯模拟的TAT代码#include bits/stdc++.h>using namespace std;#define LL long long#define MP(a, b) make_pair(a, b)cons

2014-08-21 10:11:08 595 4

原创 Vijos P1153 - 猫狗大战

题意把给定的数分成两部分,最多只能相差1个,使得他们的差最小。思路记得在UVa上有一题,分成两部分使得差最小,那直接对sum的一半进行背包即可,这题算是那题的升级版吧。用dp[i][j][k]表示前i个选j个能否到达k,数据太大,滚一下。代码#include using namespace std;#define LL long long#defi

2014-08-19 21:02:02 982

原创 Vijos - P1071 新年趣事之打牌

思路先用背包求出能否凑成left,还要一边记录路径。然后递归打印路径即可。二维数组开不下,滚一下就行。代码#include using namespace std;#define LL long long#define MP(a, b) make_pair(a, b)const int MAXN = 100000 + 10;const int INF

2014-08-19 17:54:04 876

原创 HDU 3790 - 最短路径问题(优化Dijkstra)

看CSDN上好像没有优化思路多了一个权值,不过因为是以路径短为第一条件,只要在路径相同的时候更新费用最小值即可。一开始无限WA,看了十来遍都找不出问题,后来才知道输入有重边!只能用更加熟悉了Dijkstra来聊以自慰,不过也涨姿势了,以后题目没说明的话就判断有没有重边。代码#include #include #include #include

2014-08-17 15:59:08 699

原创 USACO Section 1.3 - Barn Repair

题意有一些牛仔牛棚里,现在要用M块木板拦住这些牛,求木板的最小长度。思路要让木板长度最小,就是要让浪费的最少,也就是空的地方要尽量少。所以把空的长度排个序,减掉最长的N块即可。要处理一下木板比牛多的情况。这时候一个牛一个木板代码/*ID: mycodeb1LANG: C++TASK: barn1*/#include using na

2014-08-16 19:32:09 686

原创 UVa 10801 - Lift Hopping (Floyd, Dijkstra, SPFA三合一)

#include using namespace std;#define LL long longconst int MAXN = 100;const int INF = 0x3f3f3f3f; typedef pair pii;priority_queue, greater >q;int mp[MAXN][MAXN], d[MAXN]; void Floyd(){

2014-08-14 22:07:57 685 2

原创 Codeforces Round #260 (Div. 2) A ~ C

A. Laptops传送门A. Laptops题意其实我现在还搞不懂题意。Alex说质量和价格成反比,我还以为全部电脑都要满足才是Happy Alex,到比赛结束都没做出来。早上看了一下其他人的原来有一个电脑满足就行?(求解释)代码#include using namespace std;#define LL long long#pragm

2014-08-09 11:38:12 1920

原创 UVa 10081 - Tight Words

题意有一个由0~k的集合,从中选出长度为n的数字,求选出数字中相邻数字绝对值不超过1的概率。思路dp[i][j]表示长度为i的数字末尾是j的情况。在末尾添加数字有三种情况。是它自己。+1-1dp[i][j]=(dp[i−1][j]+dp[i−1][j−1]+dp[i−1][j+1])/(k+1)至于初始值,当长度为1的时候不管选什么数

2014-08-07 16:22:53 942

原创 UVa 10910 - Marks Distribution

题意有n门科目,总分sum,最低分k,求有多少种情况。思路dp(i,j)+=dp(i−1,k)dp(i,j)表示前i个课程总分为j的情况有多少还是记忆化搜索用得顺手╰( ̄▽ ̄)╭代码#include #define LL long longusing namespace std;const int MAXN = 70;LL dp[80]

2014-08-05 20:17:46 792

原创 UVa 10918 - Tri Tiling

题意有一个3xn的矩形,装2x1的矩形,有多少种方案。思路显然,当n为奇数的时候不可能实现。考虑加入第n列的时候。如果把第n列和第n-1列孤立出来放矩形,可以放3种(这个不难数,这样f(n)=3∗f(n−2)但是加入第n列,n - 3和n - 2列也可以放矩形了(本来不可以如图所示所以目前f(n)=3f(n−2)+2f(n−4)

2014-08-05 11:27:29 1284

原创 UVa 10519 - !! Really Strange !!

题意:n个圆圈做多能划分几个区域

2014-08-05 10:54:39 820

原创 UVa 10359 - Tiling

题意用2x1或者2x2的方格覆盖2xn的格子,有多少种方案。思路考虑加入第n列显然可以放一个2x1的。这时候的方案数是f(n−1)可以把上一列移开,放两个横着的2x1,或者一个2x2。这时候的方案数是f(n−1)+2∗f(n−2)再移和加入的列就无关了。所以最后得出公式f(n)=f(n−1)+2∗f(n−2)O

2014-08-05 10:43:18 694

原创 UVa 763 - Fibinary Numbers

传送门UVa 763 - Fibinary Numbers

2014-08-03 21:41:26 990 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除