- 博客(61)
- 收藏
- 关注
转载 C++ 中sort 函数及 cmp 自定义规则的使用
需要头文件#includeusing namespace std;这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是[a,b)。简单来说,有一个数组int a[100],要对从a[0]到a[99]的元素进行排序,只要写sort(a,a+100)就行了,默认的排序方式是升序。需
2018-01-08 21:09:17 454
原创 SDUT 2116----数据结构实验之链表一:顺序建立链表
数据结构实验之链表一:顺序建立链表Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。输入第一行输入整数的个数N;第二行依次输入每个整数。输出输出这组整数。示例输入
2016-04-08 15:02:38 452
原创 SDUT 3329----顺序表应用5:有序顺序表归并(很经典)
顺序表应用5:有序顺序表归并Time Limit: 100ms Memory limit: 800K 有疑问?点这里^_^题目描述已知顺序表A与B是两个有序的顺序表,其中存放的数据元素皆为普通整型,将A与B表归并为C表,要求C表包含了A、B表里所有元素,并且C表仍然保持有序。输入 输入分为三行:第一行输入m、n(1第二行
2016-04-07 10:49:41 548
原创 考研刷题从现在开始
现在为了考研开始刷题啦争取一天最少写两篇博客,每天都在山理工上刷简单的题吧努力吧,赌的就是任性本有的虚荣,以后就没有这种心态了吧,珍惜认真对待每一件事
2016-04-07 10:28:33 961
原创 SDUT 3330----顺序表应用6:有序顺序表查询(二分查找)
这个题刚开始是直接遍历的,因为没看见Time Limit是7ms.......题目描述顺序表内按照由小到大的次序存放着n个互不相同的整数(1输入 第一行输入整数n,表示顺序表的元素个数;第二行依次输入n个各不相同的有序整数,代表表里的元素;第三行输入整数t,代表要查询的次数;第四行依次输入t个整数,代表每次要查询的数值。输出 输出t行
2016-04-07 10:18:57 517
原创 HDU 1166----敌兵布阵(线段树点更新)
Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。
2016-01-16 13:26:57 306
原创 二叉树建树
利用带空的先序遍历结果建立二叉树:tree *creat(tree *root) { char ch; scanf("%c",&ch); if(ch==',') root=NULL; else { root=new tree; root->data=ch; root->left=cre
2015-12-31 16:29:57 2744
原创 HDU 3999----The order of a Tree(二叉树的前序遍历)
二叉树的建立,在主函数里都是返回的是根节点Problem DescriptionAs we know,the shape of a binary search tree is greatly related to the order of keys we insert. To be precisely:1. insert a key k to a empty tree,
2015-10-19 19:06:07 801
原创 POJ 1321----棋盘问题(dfs+回溯)
#include#includeint n,k,cnt; char g[10][10];int used[10]; //用于放置棋子的列标记 void dfs(int row,int num) { int i; if(num==k) //当一种方式搜完后,方式加 1; { cnt++; re
2015-08-14 10:10:03 332
原创 HDU 1010----Tempter of the Bone (dfs+剪枝)
http://acm.hdu.edu.cn/showproblem.php?pid=1010这个题一开始是用的bfs,可能是我的代码不够优化吧,一直TLE但是bfs做时应注意一个条件,bfs求得是最短路径等最优化问题,假如找到出口,但是这时需判断当前所用时间和规定时间是否相等,不相等,应剪枝。用dfs时,应做一下剪枝:t表示规定时间,mindis表示当前位置到达出口的最短距
2015-08-11 20:01:30 347
原创 UVa 10976----Fractions Again?!(枚举)
It is easy to see that for every fraction in the form (k > 0), we can always find two positive integers x and y,x ≥ y, such that: .Now our question is: can you write a program that counts how
2015-08-05 19:14:02 306
原创 UVa 11059----Maximum Product(最长上升子序列乘积)
Maximum ProductTime limit: 3.000 secondsGiven a sequence of integers S = {S1, S2, . . . , Sn}, you should determine what is the value of themaximum positive product involving consecutive terms
2015-08-05 17:40:49 281
原创 UVa 725----Division(枚举)
DescriptionWrite a program that finds and displays all pairs of 5-digit numbers that between them use the digits0 through 9 once each, such that the first number divided by the second is equal t
2015-08-05 16:42:37 636
原创 SDUT 1197----约瑟夫问题
题目描述n个人想玩残酷的死亡游戏,游戏规则如下: n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出最后一个人的编号。输入输入n和m值。输出输出胜利者的编号。示例输入5 3示例输出4#include #include struct node
2015-06-07 22:45:45 646
转载 过桥问题详解
一、问题 在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时过。如果各自单独过桥的话,四人所需要的时间分别是1、2、5、8分钟;而如果两人同时过桥,所需要的时间就是走得比较慢的那个人单独行动时所需的时间。问题是,如何设计一个方案,让这四人尽快过桥。 假设
2015-06-07 19:59:45 948
原创 POJ 1700----Crossing River(过桥问题)
DescriptionA group of N people wishes to go across a river with only one boat, which can at most carry two persons. Therefore some sort of shuttle arrangement must be arranged in order to row the bo
2015-06-07 19:45:35 478
原创 HDU 2669----Romantic(扩展欧几里德求乘法逆元)
我觉得这个算法的难点是对递归调用的理解具体的参见我上一篇博客Problem DescriptionThe Sky is Sprite.The Birds is Fly in the Sky.The Wind is Wonderful.Blew Throw the TreesTrees are Shaking, Leaves are Falling.Lov
2015-06-07 19:20:28 480
原创 递归递归递归递归
上课不好好听的下场就是,自学的时候有的地方理解不到位,做题的时候很痛苦!!!!!用扩展欧几里德算法求乘法逆元的算法过程,就是对递归调用的深层理解,花了老长时间才搞懂。。下面是我看的别人博客上的讲解C通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的《C语言程
2015-06-07 18:35:38 6284 2
原创 POJ 3253----Fence Repair 要用到优先队列!!!
DescriptionFarmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needsN (1 ≤ N ≤ 20,000) planks of wood, each having some integer
2015-05-22 19:43:28 604
原创 HDU 2037----今年暑假不AC
Description“今年暑假不AC?” “是的。” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。 作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级
2015-05-22 11:06:25 389
原创 SDUT 2073----活动选择问题
先将结束时间从小到大排序,然后依次找能够大于等于上一次结束时间的开始时间的节目。题目描述 sdut 大学生艺术中心每天都有n个活动申请举办,但是为了举办更多的活动,必须要放弃一些活动,求出每天最多能举办多少活动。输入 输入包括多组输入,每组输入第一行为申请的活动数n(n输出 输出每天最多能举办的活动数。示例输入1215 2015 198 18
2015-05-22 10:45:40 478
原创 SDUT 2278----商人的诀窍
由于某仓库的所有苹果不必要买完,所以先挑最便宜的买题目描述E_star和von是中国赫赫有名的两位商人,俗话说的好无商不奸,最近E_star需要进一批苹果。可是他需要的苹果只有von才有,von的苹果都存在他的传说中很牛叉的仓库里,每个仓库都存了不同种类的苹果,而且每个仓库里的苹果的价钱不同。如果E_star想要买仓库i里的所有重量为f[i]的苹果他必须付m[i]的金钱。E_sta
2015-05-22 10:27:30 619
原创 The Best Seat in ACM Contest--12年山东省赛(广搜)需要记录数组
需要一个记录数组,反正都是搜索,万变不离其宗题目描述Cainiao is a university student who loves ACM contest very much. It is a festival for him once when he attends ACM Asia Regional Contest because he always can f
2015-05-20 13:24:44 297
原创 POJ 3278----Catch that cow(广搜) 注意一维及方向数组
这是一个一维的变形,有三种移动情况:移动到当前位置加一,减一,或者当前位置的二倍的位置。#include#include#define N 100005struct maze{ int x; int t;}q[N],q1,q2;int used[N];int dir[3][2]={1,1,1,-1,2,0};int bfs(int sx,int ex){ i
2015-05-18 22:45:38 491
原创 n!结果后面有多少0
从"哪些数相乘可以得到10"这个角度,问题就变得比较的简单了。首先考虑,如果N的阶乘为K和10的M次方的乘积,那么N!末尾就有M的0。如果将N的阶乘分解后,那么根据算术基本定理(任何一个大于1的自然数都可以唯一分解成有限个质数的乘积),N的阶乘可以分解为: 2的X次方,3的Y次方,5的Z次方,.....的成绩。由于10 = 2 * 5,所以M只能和X和Z有关,每一对2和5相
2015-05-16 13:21:46 555
原创 筛法求素数
int half=size/2;int sn;int prime[sn];//估算素数的个数:sn=size/in(size);bool p[half];//只需要检查奇数,因为质数除了2是偶数,其他的都是奇数memset(p,1,sizeof(p));for(i=0;i<cn;i++) //cn=(sqrt(size)-3)/2;{ if(p[i]) {
2015-04-26 22:34:43 322
原创 HDU 2546----饭卡(0-1背包)
如果m大于或等于5,则留出5元买最贵的菜,用快排找最贵的菜,剩下的菜用0-1背包Problem Description电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。某天,食堂中有n种菜出售,
2015-04-23 21:43:12 455
原创 SDUT 1299----最长上升子序列
题目描述一个数的序列bi,当b1 2 S的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里11 2 K 你的任务,就是对于给定的序列,求出最长上升子序列的长度。输入输入的第一行是序列的长度N (1 输出最长上升子序列的长度。示例输入71 7 3
2015-04-12 16:34:56 422
原创 二分查找模板
int bsearch(int a[],int len,int v){ int left,right,mid; left=0;right=len-1; while(left<=right) { int mid=(left+right)>>2; if(a[mid]>v) right=mid-1; else if(a[mid]<v) left=mid+1; else retu
2015-04-12 11:47:19 309
原创 POJ 3664----Election Time
DescriptionThe cows are having their first election after overthrowing the tyrannical Farmer John, and Bessie is one ofN cows (1 ≤ N ≤ 50,000) running for President. Before the election actu
2015-04-11 17:18:23 441
原创 FZU 1004----Number Triangle
DescriptionConsider the number triangle shown below. Write a program that calculates the highest sum of numbers that can be passed on a route that starts at the top and ends somewhere on the base.
2015-04-11 12:47:38 480
原创 HDU 1228----A+B
Problem Description 读入两个小于100的正整数A和B,计算A+B.需要注意的是:A和B的每一位数字由对应的英文单词给出. Input 测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出. Output 对每个测试用例输出1行,即A+B的值. Sample
2015-04-10 23:23:56 310
原创 HDU 1003----Max Sum(最大连续子序列和)
DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 1
2015-04-10 17:20:25 348
原创 CodeForces 478A----Initial Bet
注意5个数全为0的情况DescriptionThere are five people playing a game called "Generosity". Each person gives some non-zero number of coinsb as an initial bet. After all players make their bets ofb
2015-04-10 17:15:19 523
原创 UVa 11388----GCD LCM
题目给出gcd(a,b)和lcm(a,b),求a,b。值得注意的是若结果有多组,输出a最小的那一组。#includeint main(void){ int T,g,l; scanf("%d",&T); while(T--) { scanf("%d%d",&g,&l); if(l%g!=0) printf("-1\n"); else
2015-04-10 17:00:44 373
原创 HDU 1285----确定比赛名次
Description有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。 Input输入有若干组,每组中的第一行为二个数N
2015-03-03 14:46:10 487
原创 HDU 1596----find the safest road
这样的题我还不会用邻接表做,唉。。。注意:1.最大值的初始化,我就是最大值的初始化时设成了不恰当的值,然后WA了N回。。。,还是对这个算法不够理解,要不也不可能错这么多回2.注意此题和模板的区别DescriptionXX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数
2015-03-02 10:24:56 300
原创 HDU 2544----最短路
说几点注意:1.正无穷的定义2.Dijkstra算法的基本思想是:每次找到离源点最近的一个顶点,然后以该顶点为中心进行扩展,最终得到源点到其余所有点的最短路径3.Floyd算法的基本思想是:从i号顶点到j号顶点只经过前k号点的最短路程Description在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣
2015-03-01 15:33:00 394
原创 POJ 2524----Ubiquitous Religions
具有相同信仰的人归为一个集合,则最后的集合数量即为结果。求集合数量:判断有多少的根节点,用到根节点的特征(其父节点为自己,即parent[x]== x)。 DescriptionThere are so many different religions in the world today that it is difficult to keep track of them a
2015-02-28 12:37:59 292
原创 HDU 1232----畅通工程
此题为典型的并查集应用,使用并查集合并操作将全部城镇分为N个集合,每个集合中的城镇相互连通,所以至少还需N-1条道路便可以将N个集合连通。Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建
2015-02-28 12:33:09 426
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人