挑战程序
文章平均质量分 66
星琳之梦
这个作者很懒,什么都没留下…
展开
-
dfs部分和
挑战变成设计竞赛32页给定整数a1,a2……an,判断是否可以从中选出若干数,使他们的和恰好为k;1-10^8-10^8input41 2 4 713outputYES2 4 7input41 2 4 715outputNO思路:dfs每个数都有两种可能,加或者不加,类似于李白喝酒问原创 2016-04-07 20:24:04 · 318 阅读 · 0 评论 -
二分图【图搜索】
该博文主要结合挑战程序设计竞赛98页的讲解二分图判定,给一个图,有V个点和E个边,给每个顶点染色,相邻颜色不同,能否最多用两种颜色染色,没有重边喝自环用两种颜色,也就是染了一个点之后,相邻的点颜色也就确认了。从一个点出发,依次确定相邻顶点颜色,也就可以判断了。所以书中用到了dfs深度优先搜索实现伪代码如下:bfs(v,c){//对v染色c//原创 2016-05-02 09:42:03 · 362 阅读 · 0 评论 -
初识博弈【一】(挑战程序)(poj2348,poj2484)
看了看《挑战程序设计竞赛》的4.2博弈方便的知识点。感觉也真是聪明啊……整理整理,锻炼大脑~1】Alice和Bob在玩这样一个游戏:给定k个数字a1,a2…ak。一开始,有x个石子,Alice和Bob轮流取石子。每次所取石子的个数一定要在a1~ak中。Alice先取。取走最后一个石子的一方获胜。当双方都采取最优策略时,谁会获胜?题目假定a1~ak中一定有1.分析原创 2016-05-19 21:11:42 · 606 阅读 · 0 评论 -
经典迷宫最短路问题
’#‘是墙,’S‘起点,’G‘终点,’.‘可走input 10 10#S######.# ......#..# .#.##.##.# .#........ ##.##.#### ....#....# .#######.# ....#..... .####.###. ....#...G# output 22#include原创 2016-04-07 21:59:55 · 1507 阅读 · 0 评论 -
并查集(基本代码+poj1182食物链)
--------------------------------挑战编程部分-----------------------------------并查集:常用于查询元素a和元素b是否属于同一组合并元素a和元素b所在的组基本代码:【摘自挑战程序】int par[MAX_X]; //父亲int rank[MAX_X]; //树的高度//初始化 void原创 2016-04-25 08:10:48 · 351 阅读 · 0 评论 -
最小生成树【Kruskal】POJ2377,POJ1258,poj2358,hdu1233
POJ2377注意kruskal的各个步骤注意使用时对模板的修改/*kruskal**并查集实现 **1.边权值排序sort **2.选择最小的边**3.判断最小边上的点是否同一集合 **不是同一集合就合并 */#include #include #include using namespace std;#define MAX 1002st原创 2016-05-07 22:42:46 · 596 阅读 · 0 评论 -
dp【划分数】
【dp常用于求解最优问题,各种排列组合的个数,概率,期望之类的运算。】n的m划分------有n个无区别的物品,划分成不超过m组。划分方法个数。当m=n时,称作n的划分数dp[i][j] //j的i划分的总数分析:设n=a1+a2+a3+…am.根据0的情况划分成了两种。若ai>0,{ai-1} 就对应了n-m的m划分。他和n的m划分个数是一样的若存在ai=原创 2016-04-16 10:36:09 · 360 阅读 · 0 评论 -
poj2533DP最长上升序列
Longest Ordered SubsequenceTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 43875 Accepted: 19354DescriptionA numeric sequence of ai is ordered if a1 a2原创 2016-04-15 17:48:54 · 300 阅读 · 0 评论 -
图
二分图染色#include #include using namespace std;#define maxn 102vectorG[maxn];int color[maxn]; //顶点i的颜色(-1或1) int V,E;//把顶点染成1或者-1bool dfs(int v,int c){ //顶点编号,颜色 color[v]=c; //把v染成颜原创 2016-04-27 13:54:54 · 271 阅读 · 0 评论 -
poj3253切割木板(哈夫曼树) 贪心【优先队列】
Fence RepairTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 37272 Accepted: 12078DescriptionFarmer John wants to repair a small length of the fence ar原创 2016-04-09 16:03:09 · 3211 阅读 · 0 评论 -
poj3617字典序问题【贪心】
!!!好大一个坑…字符输入是一个一个的!!!可以用cin.getline();但是时间慢, 也可以用 scanf("%s", tmp);s[i] = tmp[0];参考了网上的思路发现,还可以用scanf(" %c", &ch);在格式串中,空格的意思是匹配输入中的所有换行、TAB、空格,所以加上一个空格,就可以屏蔽掉在输入中的所有的不愉快的因素了。我的原创 2016-04-09 12:02:37 · 3964 阅读 · 3 评论 -
初始博弈【三】Grundy数
n堆的Nim在这里引入Grundy的概念int grundy(int x){ 集合S={}; for(j=1:k){ if(a_j<=x) 将grundy(x-a_j)加到S集合中 } return 最小的不属于S的非负整数 }Grundy值:除(任意一步所能转移到 的状态 的Grundy值 )以外的最小非负整数,这样的Grundy值,和Nim中的一原创 2016-05-22 21:48:33 · 1676 阅读 · 0 评论