导航

2014年2月4日

摘要: 题目: 给一张无向图,求其所有spf节点Sample Input1 25 43 13 23 43 501 22 33 44 55 101 22 33 44 66 32 55 100Sample OutputNetwork #1 SPF node 3 leaves 2 subnetsNetwork #2 No SPF nodesNetwork #3 SPF node 2 leaves 2 subnets SPF node 3 leaves 2 subnets思路: (明知道这道题是用图算法的一些东西做的,明知道你丫还没看图算法呢,还特么碰。果然,卡了吧,该。) 遍历去掉每个节点,计... 阅读全文

posted @ 2014-02-04 21:27 生存在夹缝中 阅读(281) 评论(0) 推荐(0)

2014年2月3日

摘要: 题目: 有个诡(er)异(huo)的表,给个当前时间s,给个倍数d。这表每次就只能走d倍s分钟。问这表需要几次走回零点,能曰次,不能曰不能……思路: 大过年的太需要这么一道省时省力不费劲的题放松加学习了。方案: 记得打impossible的时候吧,人家题目不要叹号……代码: 1 #include 2 3 void Tiktok(int s,int d); 4 5 int main() 6 { 7 int s,d; 8 while(1) 9 {10 scanf("%d %d",&s,&d);11 if(s==0&&d==0)12... 阅读全文

posted @ 2014-02-03 21:30 生存在夹缝中 阅读(238) 评论(0) 推荐(0)

摘要: 题目: (这算是我真正理解了动态规划的第一道题吧,原题记录如下) The fastfood chain McBurger owns several restaurants along a highway. Recently, they have decided to build several depots along the highway, each one located at a restaurant and supplying several of the restaurants with the needed ingredients. Naturally, these depo.. 阅读全文

posted @ 2014-02-03 21:27 生存在夹缝中 阅读(553) 评论(0) 推荐(0)

摘要: 题目: 太简单了,原题略。简单说,奶的总需求量N,奶农数目m,长度m的两个数组,p:各个奶农卖奶单价,a:各个奶农的奶量。求花的最少价钱。思路: 略方案: 快排加贪心代码:typedef struct Node{ int p,a;}Node; 1 int PriceCaculate(int N,int M,Node *start) 2 { 3 int left=N,cost=0,i=0; 4 qsort(start,M,sizeof(Node),comp); 5 while(left>start[i].a) 6 { 7 left-=s... 阅读全文

posted @ 2014-02-03 20:59 生存在夹缝中 阅读(179) 评论(0) 推荐(0)

2014年1月11日

摘要: 题目: (acmhit1002)输入A,B,C三个数,三个数的范围都在int内,可正可负,要求输出这三个数的和。思路: 一开始的时候,我想试试longlong解决战斗,毕竟三个int加的再溢出也就能溢出一位。但是失败了……于是我以为需要老老实实的做大数加减法,于是搞了个能算两百位(应该是198)的程序。可是不管怎么上传都不对。后来没辙了网上一搜,发现……还是特么用的longlong,只是我的输入格式弄错了!我了一个去啊……我到现在都不敢确定到底是我下面这个程序有bug还是它不识别字符串输入(用a+b改出了一个字符串结果的确提示错误),总之先这样了,没有绝对正确的程序,只是你还没看出bug在.. 阅读全文

posted @ 2014-01-11 16:04 生存在夹缝中 阅读(240) 评论(0) 推荐(0)

摘要: 题目: (18题)输入一个数组,和一个数k,在屏幕上打印数组内所有和为k的三个数的组合思路: 这题我出的,想多了。纯属想多了。我都想到做哈希表把所有两个数的结果排列进去的方法来实现n2级的查找,然后发现其实只要首尾两个指针就可以了……方案: 对数组依次遍历,针对每个当前数array[i],寻找在它前面的数组中和为k-array[i]的组合。保证了数字的排位次序,也就能保证不会重复输出同一组合代码: 1 void FindThreeNumbers(int *array,int len,int k) 2 { 3 //思路:从第三个数遍历到结尾,对每个数array[i],寻找它前面的序列内是否... 阅读全文

posted @ 2014-01-11 15:54 生存在夹缝中 阅读(219) 评论(0) 推荐(0)

摘要: 题目: 第15题,完成计算器功能,输入计算式,输出结果思路: 以前做过了,纯当练习了,中缀转后缀转出方案: 中缀转后缀:次序读入,数字放入输出数组中,运算符查看运算符栈顶,若栈顶运算符高于或等于当前栈则弹入输出数组,将当前运算符压入栈。全部遍历结束后将运算符内所有剩余运算符弹入输出数组。 后缀转结果:次序读入,遇到数字压入结果栈,遇到运算符,弹出结果栈顶两个数字,进行运算,将结果压入栈。如此当遍历结束时,若之前中缀转换和后缀运算全部正确,则栈内应只剩最终结果,输出。代码:1、数字和运算符统一存储用结构体(其实用联合更好,不过有点懒……),以及中缀转后缀用栈节点typedef struc... 阅读全文

posted @ 2014-01-11 15:33 生存在夹缝中 阅读(180) 评论(0) 推荐(0)

2014年1月3日

摘要: 题目: 迷宫的每个点是通道或者墙壁,设计程序生成一个固定迷宫从起点到终点的最简路径(ps:我这是写博客的时候才发现,原来出题那货说的是简单路径,意即不走重复路,我特么看错了……)思路: 从起点开始,对整个迷宫进行广度优先遍历,找到终点则可保证这的确是最简路径(因为是广度优先,比当前步数更少的步数能走到的位置都已遍历结束)。还是暴力计算的一种形式。有鉴于迷宫这样的东西近似于图,规律是不定的,大概也只能这样了。方案: 首先确定迷宫矩阵内每个点需要包含的信息: typedef struct MazePoint { int value;//0表示空地,1表示走过,-1表示墙 in... 阅读全文

posted @ 2014-01-03 10:17 生存在夹缝中 阅读(260) 评论(0) 推荐(0)

2013年12月30日

摘要: 题目: AB两个人玩一个游戏。先任意给定一个字母串,每个人每次从中删掉任意一个字母,两个人轮流进行,如果剩余的字母序列是严格单调递增的(按字典序a < b < c <....<z),则这个人胜利。1 模拟这个游戏,输入任意字符串(小写),能判断输赢2 输入一字符串,如果两个人都足够聪明(即如果有赢的方案,都不会选输的方案 ),甲先开始,判断甲能赢么?思路: 第一问非常好办,每次删除之后判断剩余字符串是否为单调递增子序列就好了。但是第二问需要引入判断。首先加入“只以完成游戏为目的的电脑”,这种级别的电脑会算出剩余数列的最长单调递增子序列,然后删除其他的元素。接着引入“会争 阅读全文

posted @ 2013-12-30 17:10 生存在夹缝中 阅读(312) 评论(0) 推荐(0)

2013年12月24日

摘要: 题目: 腾妃新买了个容量为W的帅气包包,现有n件新衣服可装入其中。放入第i件衣服耗费的空间是Ci,得到的价值是Vi。求将哪些衣服装入大包可使价值总和最大。思路1: 其实就是背包问题。这个问题的最佳方案应该是动态规划,但是我想了半天也没有想出来,只好先写出了递归的代码方案1: 从0到n-1遍历每一件衣服,添加在当前衣服放入或不放入背包的时候能够获得的最大值,这个最大值通过调用后面的情况得到,一直到最后一件或者背包装满为止代码1: 1 int MaxTotalCaculate(int *c,int *v,int current,int n,int w_left,int *board,int ... 阅读全文

posted @ 2013-12-24 18:13 生存在夹缝中 阅读(207) 评论(0) 推荐(0)