编程代码题
文章平均质量分 58
ZzZz_ing
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
状态记录
人工智能 - 马少平 - 朱小燕 - 编著 - 清华大学出版社P55 第一章 习题1.2积木原始状态 BBBWWWE 其中 E 表示空格,W表示白块,B表示黑块。题目要求将所有白块都处于黑块的左侧,空格块可任意位置。建模:将B看成1,将W看成0,而E看成-1,检测是否满足条件时,将-1除开,要求序列非递减。对于滑动积木的状态记录问题思考:原创 2017-09-24 10:18:06 · 645 阅读 · 0 评论 -
二分图,匈牙利算法,poj1469
这个,直接匈牙利。然后,记得用scanf()。cin超时,亲测有效。#include#include#includeusing namespace std;int line[101][301];int x[301],vis[301];int n,m,a,b,k,ans;bool find(int z){ for(int i=1;i<=m;++i) if(line[原创 2016-08-13 20:28:37 · 348 阅读 · 0 评论 -
二分图,匈牙利算法,hdu2063
解题方法:匈牙利算法。很早做的一道题。。回顾一下。。#include#includeusing namespace std;int line[505][505];int x[505],vis[505],k,n,m,ans;//x[i]的值代表第i个女生的匹配情况,0为未匹配,x[i]的实际值为其男友。(男生不需要开辟数组储存)bool find(int z){ for(int原创 2016-08-13 19:50:54 · 326 阅读 · 0 评论 -
poj1797&poj2263 dijkstra()贪心解瓶颈路问题2
poj1797题意:输入样例个数t,给出城镇个数n,公路条数m,输入m条路线。路线格式:城镇1-城镇2-公路承载量;解法:有了瓶颈路1的思路,这一题也同样可以解决,这个求的是 所有最小权值中的最大值。通时也找了一道类似的题目,poj2263。//poj1797#include#include#include#includeusing namespace std;原创 2016-08-09 17:25:40 · 690 阅读 · 0 评论 -
poj2253 dijkstra()贪心解瓶颈路问题
这道题理解了好久,又做了好久,可能是对dijkstra理解得不够彻底,跪了好多天Orz..网上搜索了很多,都只有单纯的解题模式Orz....后来才知道这是一道瓶颈路问题,解决方案一般都是用最小生成树Orz..所以,我觉得,我所写的dijkstra可能也是写的最小生成树中的一种情况吧。这道题是求起点到终点的所有可能路径中权值最大的边的最小值问题的瓶颈路问题(还有一种相反情况的题目)。原创 2016-08-09 15:17:17 · 1375 阅读 · 0 评论 -
UVA 10037贪心算法 过桥问题
题意:给了n个人过桥的时间,又因为过桥需要手电筒,且每次过桥最多两人,两人过桥时,时间按长的来算。问过桥的最短时间,并输出过程。解法:问题可以简化为小问题(4个人过桥,(最后解决三人及少于三人的情况,而下面讨论的是将2人到桥对面))来解决,或许这就是分治,呵呵O(∩_∩)O~。这样子,贪心策略就有两种:将四人排序后,分别视为时间短a[0],较短a[1],较长a[2],长a[3]。第原创 2016-08-08 20:34:34 · 1336 阅读 · 0 评论 -
POJ 3268 Silver Cow Party dijkstra();
题意:输入n,m,x,分别表示有n头牛,m条单向路径,以第x头牛(下用牛X表示)为起点。每头牛都将会1.先拜访牛X,2.后返回自己原先的位置。求出所有牛花费时间中的最大值。解题方法:首先,2.每头牛返回到自己原先位置,这个容易求,也就是求牛X到每头牛的最短时间。而求每头牛拜访牛X的时间,可以将题目所给的所有路径,全部调反,然后再求牛X到每头牛的最短时间。最后相加,找出最大值即可。#原创 2016-08-04 17:26:39 · 564 阅读 · 0 评论 -
UVA 410 贪心
题意:输入n,m;代表一共有n行,有m个元素。将所有元素的和除以n行,得到am,再将所有元素排入n行中,但每行最多两个数。每行数的和与am的差的绝对值就是imbalance.求最小的imbalance,并依题意输出。解法:要使imbalance 最小。需要根据行数n与元素个数m来排列。若m为零,则imbalance为零,但输出格式仍然需要体现。若m若m>n,又有一些行必须放原创 2016-08-04 14:08:48 · 626 阅读 · 0 评论 -
poj3414 bfs()
题目链接:http://poj.org/problem?id=3414题意: 给你两个空的瓶子,容量为输入的A,B,问经过几步操作任意一个瓶子能够得到C的水量;6个操作:用水装满A瓶FILL(1),用水装满B瓶FILL(2),将A内水倒出DROP(1),将B内水倒出DROP(2),将A内的水倒入B内POUR(1,2),将B内的水倒入A内POUR(2,1).注意倒后剩余的水保留在原水瓶中原创 2016-08-03 11:41:09 · 435 阅读 · 0 评论 -
hdu2612 Find a way 广搜
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612题意: 有Y,M两个人,和若干个目的地“@”,求两个人到同一个“@”的最小时间(两个人到“@”的时间之和)。第一次做这道的时候错了,因为没有考虑到下面这种情况3 3Y#@.M#@..根据我的计算方法;这样输出的是0而不是44;随后根据我的计算时间原创 2016-07-29 14:18:20 · 419 阅读 · 0 评论 -
poj2251 Dungeon Master 简单BFS
题目链接:http://poj.org/problem?id=2251题意: 从S走到E,若走通,输出Escaped in X minute(s).若走不出,输出"Trapped!"方法:简单BFS;#include#include#include#includeusing namespace std;char dun[40][40][40];bool vis[40原创 2016-07-28 16:28:05 · 420 阅读 · 0 评论 -
poj1321 深搜。。呵呵
题目链接:http://poj.org/problem?id=1321题意:略。方法:写在代码中。不知道是以前打的深搜题太水还是怎么的。。打起这个来特别费劲,花了1天。各种乱套。。。写深搜重要3点1.结束条件2.标记3.合理递归。。。。。。。这道题,写着写着,标记用的数组都省了,- -!!!#include#include#include#includ原创 2016-07-28 15:01:54 · 392 阅读 · 0 评论 -
pojdijkstra+邻接表
dijkstra+邻接表 与 dijkstra+邻接表+优先队列原创 2016-07-27 13:20:31 · 421 阅读 · 0 评论 -
hdu5546 Ancient Go 简单深搜
直接搜索‘o’周围有没有'.'有的话Can kill in one move!!!,没有就Can not kill in one move!!!。水题。。。#include#include#include#includeusing namespace std;char a[15][15];int vis[15][15];int fx[4][2]={{1,0},{-1,0},{原创 2016-07-26 09:23:53 · 613 阅读 · 0 评论 -
2012杭州现场赛 H - Friend Chains dijkstra+邻接表
题目出处:http://acm.hdu.edu.cn/showproblem.php?pid=4460题意: 求任意两个点的最小值,再从求出的所有最小值中,选择一个最大的输出,若存在一个点无法到达另一个点,输出-1;解法:直接暴力枚举出每两个点的距离。这道题做了将近一天时间。。无奈不太懂 时间复杂度。一般的dijkstra 应该需要两个for,即时间复杂度应该是o(n*n),再加上原创 2016-07-25 10:59:22 · 808 阅读 · 0 评论 -
天梯赛决赛 l2-016 愿天下有情人都是失散多年的兄妹 简单深搜水题
L2-016. 愿天下有情人都是失散多年的兄妹时间限制200 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越呵呵。大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人、父母、祖父母、曾祖父母、高原创 2016-07-23 09:38:11 · 3136 阅读 · 0 评论 -
ACM2016多校联赛 Abandoned country 最小生成树
又查错了一下午。。666.题目 :http://acm.hdu.edu.cn/showproblem.php?pid=5723工具 : 1.并查集(压缩路径)2.优先队列 3.向量(Vector).解决这个问题分两步:1.简单的最小生成树,计算路径.。直接用kruskal()可以解决;2.建树之后(前提很重要),求出 任意两点的距离的总和,然后除以所有可能组合方式:n*原创 2016-07-22 17:36:25 · 572 阅读 · 0 评论 -
2016.7.20的血泪史 (light oj 1040)
4个多小时全部栽在这道曾经做过的题上了。。。。最后 AC 。。真的是可以哭出来了 。。原因 :一定要注意定义一个变量时,选择合适的位置,需要重置数据的一定记得放好位置。题目 中 name[110]的位置 是 关键。题目:http://www.lightoj.com/volume_showproblem.php?problem=1041#include#include原创 2016-07-20 20:02:24 · 568 阅读 · 0 评论 -
我眼中 迪杰斯特拉(Dijkstra)与 普雷姆 (prim)的 区别
直接上代码:void dijistra(){ memset(vis,0,sizeof(vis)); for(int i=0;i<n;++i) dist[i]=map[0][i]; vis[0]=1; int u=0; for(int i=0;i<n-1;++i) { int mins=1e8; for(int j=0;j<n;++j) { if(dist[原创 2016-07-20 14:52:55 · 1767 阅读 · 0 评论 -
HDU 1232 畅通工程 入门并查集 附大牛讲解
#include#includeusing namespace std;int pre[1005];int find(int x){ int r=x; while(r!=pre[r]) //寻找根节点,(pre[r]是 r 的 上级,) r=pre[r]; int i=x,j; while(i!=r) //压缩路径,使得每一个子节点的上级直接为根节点,省去层层原创 2016-07-19 11:00:31 · 579 阅读 · 0 评论 -
HDU 1501 简单DP运用之记忆化搜索
点击打开链接题意是: 给出两个字符串(各200)a,b,问不改变a,b的顺序,能否组成第三个字符串c(400)。分析: 基本思想是利用递推。 分别判断各个字符串a,b的每个字符是否符合c的字符。一直比较下去。而需要用到DP的地方是当a[qal],b[qbl],都与c[qcl]相等的时候。需要都进行一次搜索。此外就是,已经搜索过的地方,及时用vis[qal][q原创 2016-05-18 20:25:17 · 494 阅读 · 0 评论 -
LightOJ - 1341
#include #include #include #include using namespace std;const int N = 1000000 + 10;bool isprime[N];int prime[N];int primeNumber;void makeprime(int n) { memset(isprime, 1, sizeof ispri原创 2017-04-28 17:26:50 · 511 阅读 · 0 评论 -
LightOJ - 1282
#include#include#includeusing namespace std;int power(int a,int b,int c){ int res=1; a%=c; while(b) { if(b&1) res=(res*a)%c; a=(a*a)%c; b>>=1; } return res;}int m原创 2017-04-27 21:00:52 · 405 阅读 · 0 评论 -
uva10791 唯一分解定理
很好的解释:http://blog.youkuaiyun.com/wuxiushu/article/details/51435088#include#include#includeusing namespace std;int main(){ long long n; int k=1; while(scanf("%lld",&n)==1&&n) { long long ans=0;原创 2017-04-26 19:20:46 · 735 阅读 · 0 评论 -
poj 1321
#include#include#includeusing namespace std;int ans,n,k,cnt;char map[10][10];bool vis[10];void dfs(int i){ if(cnt==k) { ans++; return; //满足条件后就return,根据下面dfs(i+1),可以保证遍历没有重漏。 }原创 2017-04-12 17:09:56 · 506 阅读 · 0 评论 -
二叉树 三种遍历构造二叉树+层次遍历 题目 PAT 树的遍历
https://www.patest.cn/contests/gplt/L2-0061.后序遍历+中序遍历,构建二叉树。2.队列层次输出二叉树#include#include#include#include#includeusing namespace std;int n;int in[35],post[35];struct node{ int data; nod原创 2017-03-22 22:29:21 · 608 阅读 · 0 评论 -
lightoj1074 Extended Traffic bellman-ford算法
题目大意:给出一个n代表城市个数,输入n个城市的拥挤程度。输入m,再输入m条路径(单向),输入q,在输入q个数;输出到达q个数城市的最短时间,若时间小于3||不能到达||存在负环,输出‘?’。解题方法:来一遍Bellman-ford即可。。WA了几个小时,原因是代码实现存在漏洞。(判断是否松弛的时候少了dis[j]#include#include#include#incl原创 2016-08-18 15:23:09 · 370 阅读 · 0 评论 -
lightoj1074 Extended Traffic bellman-ford算法
题目大意:给出一个n代表城市个数,输入n个城市的拥挤程度。输入m,再输入m条路径(单向),输入q,在输入q个数;输出到达q个数城市的最短时间,若时间小于3||不能到达||存在负环,输出‘?’。解题方法:来一遍Bellman-ford即可。。WA了几个小时,原因是代码实现存在漏洞。(判断是否松弛的时候少了dis[j]#include#include#include#includ原创 2016-08-18 15:21:14 · 479 阅读 · 0 评论 -
HDU 1009 FatMouse' Trade 简单贪心,细节处理
http://acm.hdu.edu.cn/showproblem.php?pid=1009分析:简单求每个房间里的单价,求出最终答案即可.本文主要谈坑点.(貌似也说不上).先贴上WA代码:原创 2016-05-09 22:09:44 · 445 阅读 · 0 评论 -
HDU 2066 一个人的旅行
http://acm.hdu.edu.cn/showproblem.php?pid=2066分析:题目要求输出草儿想去的城市的最短时间,就是 家->A(相邻城市)->B(几个中的任意一个) 的最短距离。由于最终是从一个出发点到一个终点,仔细分析,不难得出这是个单源最短路问题(就是一个出发点,一个终点)。所以可以运用dijkstra。代码如下:#include原创 2016-05-07 10:34:28 · 504 阅读 · 0 评论 -
最长子串hdu1503
题目来源:hdu 1503解题思路:找出最长子串,然后按顺序交替(遇到相同子串则交换一次输出)输出,最长子串值输出一次。#include#include#includeusing namespace std;int f1[105];int f2[105];int cnt[105][105];char path[105][105];int main(){ string a原创 2017-10-28 18:35:14 · 399 阅读 · 0 评论 -
poj1651矩阵连乘问题
矩阵连乘,通过加括号来决定计算优先级,从而得到计算(只计算乘法)的最小次数。输入:输入n,n-1个矩阵相乘,需要n列数。然后输入n个数xi。输出:n个矩阵相乘最后得到的最小计算次数算法思想:假设矩阵有A1、A2、.....An个,则我们从简单的开始计算,即每两个矩阵都计算它们需要的计算次数。然后再计算每3个矩阵需要计算的次数,这时候,根据最优子结构性质,在得出每3个矩阵原创 2017-10-27 15:11:53 · 510 阅读 · 0 评论 -
二分查找总结 & 进阶
题目:leetcode 154. 寻找旋转排序数组中的最小值 II假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。注意数组中可能存在重复的元素。示例 1:输入: [1,3,5]输出: 1示例 2:输入: [2,2,2,0,1]输出: 0说明:这道题是 寻找旋转排序数组中的最小值 的延伸题目。允许重复会影响算法的时间复杂度吗?会如何影响,为什么?来源:力扣(Le原创 2020-07-22 14:22:47 · 303 阅读 · 0 评论
分享