自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shengweisong

梦想有多大,你就有多勇敢!!!

  • 博客(80)
  • 资源 (2)
  • 收藏
  • 关注

原创 hdoj 1455 Sticks 【dfs】

题意:找最短的木棍能够组成的长度,hdoj  1518 的加强版代码:#include #include #include using std::sort;#define M 70int s[M], vis[M];int n, ans;int cmp(int a, int b){ return a > b;}int dfs(int cou, int cur,

2014-08-27 08:20:16 878

原创 hdoj 1518 Square 【dfs】

题意:给出n个(不同长度的)棍子,问能不能将他们构成一个正方形。策略:深搜。

2014-08-27 07:59:55 972

原创 hdoj 4932 Miaomiao's Geometry 【暴力枚举】

题意:在一条直线上有n个点,取一长度差为x的区间, 规定点必须是区间的端点, 让你找出来最大的x策略:rt分析可得:两个相邻点之间的区间要么是两个点的差,要么就是两个点的差的一半,那我们就简单枚举一下就好了排好序之后再枚举

2014-08-27 07:57:09 825

原创 hdoj 2126 Buy the souvenirs 【另类01背包】

题意:求最多购买的件数以及有几种方法。一看到这题就想到了背包,因为求得是种类数,所以我们可以将件数看做价值,将价格看做重量,这就变成01背包了(dp),但是还要求有几种购买方案,那么再来一个背包(kind)。分析:有三种情况:1》dp[j] < dp[j-s[i]]+1那么对于这一种情况 方案背包的状态转移方程是kind[j] = kind[j-s[i]]?kind[j-s[i]]:1;(考虑到kind[j-s[i]] ==0的时候,这时候kind[j] = 1);证明:为什么是kind[j]

2014-08-25 21:37:29 808

原创 hdoj 3750 Guess Game 【数学之二分】

题意:用二分法找出数学期望。策略,二分。求数学期望有两种方法,一:求出每一个数的概率,再与数相乘,最后把所有的乘积相加就好了。二:数学期望总是与平均数相等,所以可以当做求平均数。(简单方便)代码:

2014-08-25 21:18:06 796

原创 HDOJ 4430 Yukari's Birthday 【枚举】+【二分】

题意:有一个蛋糕,将所有的蜡烛摆成一个以中心为同心轴的同心圆(中心可以放一个或者一个也不放,由近到远编号(1~r)每一个圆上分别放k^i(i是第几个的序号, k》=2)), 给你总的蜡烛数,让你求出k*r最小的,如果k*r相等,取r较小的。分析:由等比数列可得k^0+k^1+。。。+k^r = (1-k^(r+1))/(1-k) 小于等于10e12,k最小是2,算出来r《40,那么我们可以枚举

2014-08-25 21:07:16 710

原创 hdoj 2199 Can you solve this equation? 【二分枚举】

题意:给出一个数让你求出等于这个数的x策略:如题。因为整个式子是单调递增的,所以可以用二分。要注意到精度.代码:#include #include #include #define eps 1e-10#define f(x) 8*pow(x, 4) + 7*pow(x, 3) + 2*pow(x, 2) + 3*xint main(){ int t; double

2014-08-25 08:21:40 866

原创 hdoj 1010 Tempter of the Bone 【DFS】+【奇偶剪枝】

题意:从S出发到D停止,并且要在指定的时间t走到(不早不晚)。注意,每个‘.’只能走一次。分析:DFS,但是用普通的dfs,TL, 所以要剪枝。我们可以想到,如果可以早到D点,但是D点周围有其他可以踩的点,并且可以观察到,从一个点(不是D点)到D点的距离(abs(x-dx)+abs(y-dy))是奇数的话,就要走奇数步,偶数的就走偶数步,()

2014-08-22 22:25:30 843

原创 poj 1844 Sum 【数学】

题意:给出一个数,让你求从1按照顺序来加减并且你可以改变任意两个数之间的符号.分析:对于1~n这n个数(和为sum),可以组成任意的1~sum之间的数,并且改变一个数n(例如 1+2+3+4+5, 将2前面的符号改为-) 那么这n个数的和就减小了2*n(例子中就减少了4),既然这样我们只需要找出大于等于要求的数的数n(就是大于给定数的1~n的和),在判断(总和-n)是不是偶数就可以了。不明白的话,直接看代码;代码:

2014-08-22 22:04:34 763

原创 poj 1580 String Matching 【字符串处理】

题意:移动字符串一与另外的一个字符串匹配,找最多的匹配个数策略 暴力 就是将一个字符串固定,然后用另一个字符串从左往右来跟这一字符串来比较代码:

2014-08-22 15:58:47 1239

原创 hdoj 1045 Fire Net 【DFS】

题意:如果两个点要放在同一行或者同一列,那么两个点中间要有一个墙,否则的话只能放一个点,最后问你最多能放几个点。看了一个星期。。这道题的解法我还是第一次见,就是逐个逐个的来放置每个点,然后每经过一个点都判断一次,详情看代码

2014-08-21 23:52:21 778

原创 hdoj 2095 find your present (2) 【位运算】

题意:找出现次数不同于其他数的数。超时了一次,后来知道了位运算。。。长见识了0^0 =00^1=11^0=11^1=00^1^1 = 0可以发现 任何数异或0还是他本身。一个数异或另一个数偶数次还是他本身。代码(位运算都600+ms):#include #include int main(){ int a, b

2014-08-21 10:29:18 761

原创 hdoj 1999 不可摸数 【数学】

简单来说,就是要找出50万以内的数的真因子之和,再做个标记

2014-08-21 09:55:12 831

原创 hdoj 3784 继续xxx定律

代码:

2014-08-21 09:52:40 834

原创 hdoj 1086 You can Solve a Geometry Problem too 【计算几何】

题意:就是判断各线段之间有没有交点。判断两线段相交,要运用到叉积。两个线段相交肯定相互跨越,假设一个条线段(p1p2),另一条是(q1q2),那么p1p2肯定在q1q2线段的两侧,那么运用叉积如果p1p2跨越q1q2的话(q1p1)x(q2p2)《= 0.同样也要验证 q1q2是不是也跨越p1p2,注意:p1p2跨越q1q2,不代两个线段相交,可能是p1p2跨越直线q1q2,所以说还是要再次判断q1q2是不是跨越p1p2还有另外一种比较容易理解的解法:就是如果两个线段相交,那么两线段两端端点的差即(p

2014-08-21 08:55:51 861

原创 nyoj 12 喷水装置(二)【贪心】+【区间完全覆盖覆盖】

题意:。。。这道题就是区间问题三种中的区间完全覆盖问题,不懂的可以看我上一篇也是区间完全覆盖。直接上代码:#include #include #include using std::sort;struct node{ double le, ri;}s[1005];int cmp(node a, node b){ return a.le < b.le;}int ma

2014-08-19 23:33:14 1705

原创 zoj 3197 Google Book 【区间覆盖】

Google BookTime Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu[Submit]   [Go Back]   [Status]  DescriptionYou, the best hacker in the world, w

2014-08-19 20:40:24 1359

原创 poj 3077 Rounders 【简单字符串处理】

题意:就是4舍5入到最近的数.题意有些难理解。。。代码:#include #include char s[10];int main(){ int t, n; scanf("%d", &t); while(t --){ memset(s, 0, sizeof(s)); scanf("%s", s); int len = strlen(s); if(len =

2014-08-19 20:17:39 772

原创 hdoj 2089 不要62 【打表】

题意:。。水题代码:#include #include #include using namespace std;int s[10];int ans[1000005] = {0, 1};int is(int n){ //n = 62; int pre = 0, cur = 0, i; while(n){ pre = cur;

2014-08-19 20:12:02 1192

原创 poj 1011 Sticks 【DFS】+【剪枝】

题意:有未知根(长度一样)木棒(小于等于n),被猪脚任意的截成n段,猪脚(脑抽了)想知道被截之前的最短长度(我推测猪脚得了健忘症)。这道题光理解题意就花了好久,大意就是任意根被截后的木棒拼到一起,能不能组成s(《=n)根的相同的木棒,例:数据 9 5 1 2 5 1 2 5 1 2可以组成最短为6 的(5+1, 2+2+2)3根木棒。策略:深搜。不过要是传统的深搜的话,TL

2014-08-18 21:50:23 885

原创 hdoj 1022 Train Problem I 【简易STL】

题意:不解释(这题是学数据结构必做的)以前自学数据结构的时候,只是会顺序表来模拟栈。最近简单学习了stack头文件 又来做了一遍(还是以前的味道)代码:#include #include #include using std::stack;stack s;char s1[100], s2[100]; int vis[10];char stac[100];int main

2014-08-18 20:50:26 1132 1

原创 hdoj 2553 N皇后问题 【DFS】

题意:。。。典型的深搜,就是处理对角线的时候有些意外。代码(注释掉的就是深搜,因为我不打表的话 TL):#includeint c[11], n, ans;int res[10] = {1, 0, 0, 2, 10, 4, 40, 92, 352, 724};/*void dfs(int cur){ if(cur == n) { ++ans; return ; }

2014-08-17 15:07:08 879

原创 hdoj 2054 A == B ? 【字符串】

题意:。。。这道题测试数据很弱,我都没有处理负数

2014-08-17 15:03:48 771

原创 hdoj 1059 Dividing 【多重背包】||【优化母函数】

题意:每一种弹珠(marble)的都有各自的价值,第一种为1, 第二种为2,。。,给出你每种弹珠的数量,求能不能将价值总和均分。策略:rt;这道题比赛的时候没有想到用母函数,就用了多重背包来解,之后递交的时候时间居然超600ms,我再一看递交排行都是0ms(⊙﹏⊙b汗)。看到讨论区有人说母函数也可以,于是就写了个普通的,可惜TL了。果然还是需要优化啊。。。于是游来游去果然0ms(O(∩_∩

2014-08-17 12:02:44 1160

原创 hdoj 2094 产生冠军 【拓扑】+【STL】

题意:。。。策略:如题。对于STL暂时不动

2014-08-15 17:37:54 738

原创 poj 3126 Prime Path 【暴力BFS】

题意:给你一个4位数,再给你一个4位数,如前一个数的每次只移动一位,问你能不能将第一个数变成第二个。转移条件:1,只能通过素数作为中转,2,每次移动一位.如果找到输出最少的转移次数(或步数), 如果找不到输出Impossible。策略:如题。直接上代码:#include#include#include#define M 10005using std::queue;in

2014-08-15 17:00:11 801

原创 poj 3278 Catch That Cow 【BFS】

题意:从一个点n到达另外一个点m, 移动的方式有三种,*2,+1, -1。求最少到达的步数。策略:如题。wa了好几次。。。只输入一组数据,用队列的时候最好吧队列声明放在函数外面否则用g++递交有可能wa(亲身体验)。但是用c++可以过的。代码1(队列声明放在函数的外面,用c++和g++都可以a):#include#include#includeusing namespac

2014-08-15 10:50:37 653

原创 poj 1321 棋盘问题 【DFS】

题意:。。。策略:深搜.仔细分析我们发现,我们只需要对列进行标记,对于行我们考虑放棋子还是不放就行了。代码:#include#includechar s[10][10];int n, m;int vis[10];int ans;void dfs(int cur, int step){ if(step == m){ ans ++; return; } if

2014-08-15 09:19:20 737

原创 hdoj 1003 Max Sum 【最大子段和】【贪心】

题意:。。。策略:看着像贪心,感觉也是贪心。很久之前做的,又做了一遍,好题。代码:#include#includeint s[100005];int main(){ int t, i, j, l, st, en, n, v = 1; scanf("%d", &t); while(t --){ scanf("%d", &n); for(i = 1; i <= n

2014-08-14 23:41:41 1011

原创 poj 3009 Curling 2.0 【DFS】

题意:从2出发,要到达3, 0可以通过,碰到1要停止,并且1处要变成0, 并且从起点开始沿着一个方向要一直前进,直至碰到1(或者3)处才能停止,(就是反射来反射去知道反射经过3).如果反射10次还不能到达3,就输出-1.策略:深搜。易错点,方向不容易掌握,并且,出题人把n, m顺序反了。代码:#include#includeint map[25][25];int ans, n

2014-08-14 23:16:39 770

原创 HDOJ 3790 最短路径问题 【dijkstra】+【双权值】

题意:。。。难点:如何处理两个权值。分析:题意说如果最短路径有多个,那么取价值最低的那个,所以说价值随着路径在变,如果路径不相等那么就更新路径并且更新价值,反之,则判断价值是不是要更新。代码:#include#include#define M 1002#define INF 0x3f3f3f3fint mapp[M][M], mapd[M][M], n, m, di[M],

2014-08-14 10:54:39 1048

原创 hdoj 1203 I NEED A OFFER! 【另类01背包】【概率背包】

题意:。。。策略:动态规划。因为是求至少能得到一个offer的概率,那我们可以反着求,求得不到一个offer的概率,最后用1减去就好了.代码:#include#includedouble dp[10010];struct node{ int a; double b;}s[10010];int main(){ int n, m, i, j;

2014-08-13 21:03:46 941

原创 hdoj 2188 悼念512汶川大地震遇难同胞——选拔志愿者 【巴什博弈】

题意:。。。策略:最简单的典型的巴什博弈。代码:#includeint main(){ int n, m; int t; scanf("%d", &t); while(t --){ scanf("%d%d", &n, &m); if(n%(m+1) == 0){ printf("Rabbit\n

2014-08-13 20:59:59 787

原创 hdoj 1312 Red and Black 【BFS】

题意:一共有四个方向,从’@‘出发,找能到达‘.’的个数, #是不能通过的.策略:广搜。这道题属于最简单的bfs了。代码:#include#include#includeusing std::queue;bool vis[25][25];char s[25][25];int n, m;int ans = 0;struct node{ int x, y;};no

2014-08-13 20:54:16 592

原创 hdoj 2082 找单词 【母函数】

题意:a~z的价值分别是1~26,给出你a~z的个数,问最多能组成价值不同的种类数。策略:母函数。典型的母函数题,但是这是属于给你有限个数目的题,要小心。直接上代码:#include#includeint ans[55];int c1[100], c2[100];int main(){ int a[27], t, i, j, k; scanf("%d", &t);

2014-08-13 11:21:42 729

原创 HDOJ 1874 畅通工程续 【dijkstra】

题意:。。。策略:最简单的求最短路径.代码:#include#include#define MAXN 1005#define INF 0x3f3f3f3fint di[MAXN], vis[MAXN], n, m;int map[MAXN][MAXN];void dijkstra(int v){ int i, j; memset(vis, 0, sizeof(vis)

2014-08-13 10:11:28 652

原创 hdoj 1863 畅通工程 【最小生成树】+【kruskal】

题意:。。。难点:如何判断是不是信息不全:在输入的时候建立并查集,之后判断有几个节点就可以了,剩下的就是kruskal算法。代码:#include#include#include#define MAXN 105#define INF 0x3f3f3f3fusing std::sort;struct node{ int from; int to; int w; }ed

2014-08-12 21:02:27 755

原创 HDOJ 1233 还是畅通工程 【最小生成树】+【prim】

题意:。。。策略:最最典型的prim算法。代码:#include#include#define INF 0x3f3f3f3f#define MAXN 105int map[MAXN][MAXN], di[MAXN], vis[MAXN];int n;int prim(){ int i, j, min, pos; memset(vis, 0, sizeof(vis));

2014-08-12 18:03:09 778

原创 待解决之拓扑排序

hdoj  3231 (三维拓扑)hdoj

2014-08-12 15:23:31 572

原创 NYOJ 3 多边形重心问题 【计算几何】

题意: 这道题跟HDOJ 1115 差不多

2014-08-12 11:03:29 787

hadoop.env

hadoop配置文件. 供大家参考以及使用。涉及到hadoop,spark.

2019-02-12

ACM代码

自己写的ACM代码,分享一下,同时督促自己更加的向上

2015-03-09

空空如也

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

TA关注的人

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