自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

渐近自由

只要有朝那个方向的分运动,你就离它越来越近

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

原创 hdu 2112 Today(最短路 dijkstra+map容器的用法)and 1217(floyd+map)

2112:题意是给你几个公交车站,起点,终点,各站之间的距离,求起点到终点之间的最短距离。(起点终点相同距离为0)不能到达输出-1。这题学习了c++中map+string的用法。C++ STL map:1.简介:Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作。

2014-03-26 11:19:40 562

原创 hdu 2066 一个人的旅行(单源最短路dijkstra)and hdu 2544

题意是给几个城市间车程的时间,给几个和女主家【相邻】的城市(这个条件灰常重要啊!),然后给几个女主【想去】的城市,求女主从她家【相邻】城市到【想去】城市的最短时间。刚开始做以为是多源的最短路,因为给了好多个【相邻】的城市。因为忽略了女主家也可以作为起点,这样思路一改变,马上就把多源变为了单源。具体的实现就是把map[女主家][相邻城市]=0,最后用dijkstra求女主【家】到【想去】

2014-03-26 08:24:50 488

原创 hdu 1874 畅通工程续(最短路floyd)

题意是给两城市间的几条路,最后求城市star到城市end的最短路的距离,若到不了输出-1。刚开始接触最短路。因为求的是任意两点间的最短路,所以选择floyd求最短路。易出错的地方是城市 i 到 j 不一定只有一条路,所以要加入一个判断。代码:#include#includeusing namespace std;const int INF=1 << 29; /

2014-03-24 12:06:44 491

原创 2013 蓝桥杯C/C++本科B组 带分数(牛逼库函数)(备战LQB)

100 可以表示为带分数的形式:100 = 3 + 69258 / 714还可以表示为:100 = 82 + 3546 / 197注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。 题目要求:从标准输入读入一个正整数N(N程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。注意:不要求输出每个

2014-03-20 21:40:51 1102 1

原创 hdu 2048 and 2049(错排问题)

2048:题意是给n个人,抽自己的名字,求谁都没抽到的概率。N张票的所有排列可能自然是Ann = N!种排列方式现在的问题就是N张票的错排方式有几种。首先我们考虑,如果前面N-1个人拿的都不是自己的票,即前N-1个人满足错排,现在又来了一个人,他手里拿的是自己的票。只要他把自己的票与其他N-1个人中的任意一个交换,就可以满足N个人的错排。这时有N-1种方法。另外,我们考

2014-03-18 17:13:59 492

原创 hdu 2047 (双路递归)(备战LQB)

题意是排长度为n的字符串,只能用三种字母且o与o不能连用。采用每次在原来合法字符串最后一个字母后面加一个字母的方法。这样会出现,原字符串最后一个字母 为o 与 不为o 的情况。若原字符串末尾字母不为o,则此路D [n] [0]只保存末尾加o情况,即D [n] [0]=D[n-1] [1] ;若原字符串末尾字母为o,则此路D[n] [1]保存末尾加e与f的情况,即D[n] [1]

2014-03-18 16:37:17 701

原创 hdu 2041 and hdu 2044 and hdu 2045(打表 递归)(备战LQB)

题意是走楼梯,一次可走一阶或两阶,给个台阶,问有几种走法,初中数学题。题目很简单,但是提供了一个打LQB的思路,就是注意斐波那契数列的实际应用。由题目可知,每次只能走一级或两级。因此从第一级走上第二级只能走一步,只有1种走法。从第一级走上第三级,可以从第一级直接走两步,也可以从第二级走一步。有2种走法走上第n级,可以从第n-1级走一步上来,也可以从第n-2级走两步上来。

2014-03-17 11:25:48 626

原创 hdu 2037 贪心+结构体排序(备战LQB)

题意是找一堆时间点里面,不重合的时间段的最多个数。经典的DP,让人想起刚刚入门时候的奶牛题。从后往前的动归,这段核心代码写糊了,按教程理解了好久。代码:#include#include#includestruct Time{ int star; int end;} time[101];int cmp(const void *va, const

2014-03-17 10:33:45 531

原创 hdu 2036 计算多边形面积(备战LQB)

题意就是在xoy平面上求多边形面积。解析:可以利用多边形求面积公式:S = 0.5 * ( (x0*y1-x1*y0) + (x1*y2-x2*y1) + ... + (xn*y0-x0*yn) )其中点(x0, y0), (x1, y1), ... , (xn, yn)为多边形上按 逆时针 顺序的顶点。代码:#include int main(){

2014-03-16 12:39:22 520

原创 hdu 2029 Palindromes _easy version(库函数 strrev)(备战LQB)

题意是判断是否回文,非常简单的题目,但是 这里介绍一个牛逼的做法,那就是库函数 strrev()。代码:#include #include int main(){ int n; char s[1024]; char t[1024]; scanf("%d", &n); getchar(); while (n--) {

2014-03-15 13:47:40 420

原创 hdu 2028 Lowest Common Multiple Plus(最大公约数最小公倍数)(备战LQB)

题意是求几个数的最小公倍数。教程://Programing我这里用GCD递归定理:对任意非负数a 和 任意正整数b,gcd(a, b) = gcd(b, a mod b)这个就是欧几里德算法了。 //MathGCD递归定理的证明。有很多人喜欢打破沙锅问到底。曾经很多人也问过我gcd算法的原理,这里给你们回答:下面提到的 a|b 就是表示a能被b整除。首先

2014-03-15 13:39:38 759

原创 hdu 2024 C语言合法标识符(ctype.h 库函数)(备战LQB)

教程:多用库函数,勤用库函数。isalpha语法:#include int isalpha( int ch );功能:如果参数是字母字符,函数返回非零值,否则返回零值。isalnum语法:#include int isalnum( int ch );功能:如果参数是数字或字母字符,函数返回非零值,否则返回零值。#include #inclu

2014-03-11 21:14:17 593

原创 poj 1606 Jugs and poj 3414 Pots(数组模拟BFS) uva 571 (数论)

据说是水题,参考别人代码写了一个晚上。题意是给两个水杯a因为用队列的stl要记录层比较难,所以用数组模拟。代码:#include #include const int MAX=105;int a,b,n,str[MAX*MAX],r,l;bool vis[MAX][MAX];char act[][10]= {" ","fill A","fill B","empt

2014-03-10 22:26:32 758

原创 hdu 1016 Prime Ring Problem(DFS)

题意是给一个数字n,寻找由小于n的n个正整数排列出前一个与后一个数的合是素数的环。用深搜,打表,很快就解决了。代码:#include#includeint n,ans[20];bool vis[31];bool prime[31]={0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0};/*v

2014-03-09 21:40:06 497

原创 poj 2251 Dungeon Master(BFS)

题意就是 3D迷宫,在noj上做过~,在平面 xoy 上加上z轴就变成3D啦~找最短的出路所以BFS。代码:#include#include#includeusing namespace std;char maze[31][31][31];int L,R,C;int xe,ye,ze;int dir[][3]= {{-1,0,0},{1,0,0},{0,0,1}

2014-03-09 21:05:09 516

原创 hdu 2012 素数判定(打表)(备战LQB)

按教程继续备战LQB。题意是让你判断表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39打表法的素数判断。直接上教程原文:首先让我们来看看这些都是什么数。#include int main(void){ int i, c; for (c = 1, i = -39; i <51; i++) { printf("%-5d",

2014-03-09 11:29:58 667

原创 poj 3126 Prime Path(BFS)

Debug了一个早上,感觉自己BFS写得没错。。。最后发现原来是打表的时候漏了一个大括号。T T。不过练习了一下Codeblock工程中的Debug模式~,成功发现了问题。题意是让转化俩素数 j->k,一次只能换一个数位的数,并且转换过程中新的那个数还要是素数,求最少的次数。素数直接打表。附上学校某学长新生赛题解给的两种素数打表代码:1、 prime[i] 非0

2014-03-09 11:11:26 476

原创 hdu 2005 第几天?(处理闰年)(备战LQB)

迎战蓝桥呗 照着教程刷几道水题,以便到时候复习。题意是,给你一个日期,求这是今年的第几天。代码:#include #include #define lev(n) ((n % 4 == 0 && n % 100 != 0)|| n % 400 == 0)//!!绝妙配合 闰年:N能被4整除and不能被100整除,或N能被400整除int main(void){ int

2014-03-08 20:17:00 602

原创 poj 1426 Find The Multiple(DFS或打表)

大概题意就是找出一个1~200间的一个数字n,找出一个只由1,0组成的数m,使m被n整除。第一种 思路是dfs,搜到一种满足题意的答案就ok了。用的时间比较多。用unsigned long long 解决了大数问题。代码:#includeint n;bool flag;void dfs(unsigned long long a,int dep){ if(

2014-03-08 19:43:30 774

原创 poj 1321 棋盘问题(DFS)

深搜可以搜索出所有答案,题目没说清楚,只有在“#”上才能放旗子。直接看代码:#include#includebool chess[9][9];bool vis_col[9];int n,k,ans;void dfs(int row,int num) //当前搜索到row,num为已经放下的棋子{ if(num==k) { ans++;

2014-03-07 21:12:30 546

原创 poj 3009 Curling 2.0(DFS)

大概题意就是弹弹球。第一眼看到“The purpose of the game is to lead the stone from the start to the goal with the minimum number of moves."的时候,惯性思维想到用广搜。之后发现数据规模比较小,可以直接深搜遍历。有空再翻回来写个广搜吧~DFS代码:#includeint map

2014-03-06 22:28:53 492

原创 poj 2488 A Knight's Journey(DFS)

本题分为两部分:1.DFS。深搜能搜到最底部,深搜的出口是深度等于棋盘个数。2.字典序输出。首先对棋盘编号如下:所以图中八个点的字典序就为:   B3...        B5...      C2...        C6...      E2...      E6...        F3...        F5...转变成变换坐标,为      (x,y)

2014-03-05 22:02:52 491

原创 poj 3278 Catch That Cow (BFS剪枝)

第一次想到求最短路,用bfs,用的不够灵活,代码很幼稚,活生生的TLE。TLE代码:#include#includeusing namespace std;struct point{ int x; int step;};int bfs(int s,int e){ queue Q; point now,next; now.x=s;

2014-03-05 16:48:54 523

原创 usaco 1.4 The Clocks(暴搜)and poj 1166

思路是暴搜,网上说的dfs,bfs因为能力不足,无法理解。每个钟如果拨动四次等于没拨,所以每个变换设定最多只变三次。首先先对输入的数字进行处理,因为只有3 6 9 12,四钟情况,所以缩小变为,1 2 3 0 。num[ i ] 表示第 i 种变换。因为表1在变化1,2,4中才被拨,所以:tmp[ 1 ]=(a[ i ]  + num[ 1 ] + num[ 2 ] + num

2014-03-02 15:09:51 714

空空如也

空空如也

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

TA关注的人

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