E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
uva
UVA
1025 城市里的间谍 A Spy in the Metro
题面某城市地铁是线性的,有n(2≤n≤50)个车站,从左到右编号1~n。有M1辆列车从第1站开始往右开,还有M2辆列车从第n站开始往左开。列车在相邻站台间所需的运行时间是固定的,因为所有列车的运行速度是相同的。在时刻0,Mario从第1站出发,目的在时刻T(0≤T≤200)会见车站n的一个间谍。在车站等车时容易被抓,所以她决定尽量躲在开动的火车上,让在车站等待的时间尽量短。列车靠站停车时间忽略不计
一qkm一
·
2020-08-18 09:02
DAG
动态规划
UVA
- 11212 Editing a Book(IDA* 迭代加深搜索+启发式算法)
思路:刘汝佳紫书上的题,设maxd为深度上限,最大为8.当前深度为d,,用h()计算当前后继不正确的数。剪枝条件为h()>3*(maxd-d),即h()+3d>3maxd.c++代码:#include#include#includeusingnamespacestd;inta[15];intn;intmaxd;boolis_sorted(){for(inti=1;i3*maxd)returnfal
一只谜谜怪
·
2020-08-18 09:02
dfs
IDA*
UVA
11324 The Largest Clique (强连通分量 +dp)
题目链接:
UVA
11324题意:给一个有向图,求一个结点数最大的结点集,使得该结点集中任意两点u和v满足:要么u可以到达v,要么v可以到达u,或是相互可达建图,跑一遍强联通,然后用连通分量建新图,求一个新的
shyoldman
·
2020-08-18 09:58
图论
UVA
10817 Headmaster's Headache
转自:https://blog.csdn.net/qq_29869107/article/details/52059968题目大意m教师,n求职者,共同竞聘s门课程。要求:每门课程须有两名科任老师,教师必须聘用。解题思路直接给出状态转移方程,具体含义详见代码。d[i][s1][s2]=min(d[i+1][s1’][s2’]+c[i],d[i+1][s1][s2]);Theheadmasterof
IDnumber4
·
2020-08-18 09:26
动态规划
题解
UVA
11212Editing aBook 编辑书稿
问题描述:你有一篇由n(n[2,9])个自然段组成的文章,希望将它们排列成1,2,、、、n。可以用Crtl+X和Ctrl+V快捷键来完成任务。每次可以剪一段连续的自然段,粘贴时按照顺序粘贴。注意,剪贴板只有一个,所以不能连续剪切两次,只能剪切和粘贴交替。例如,为了将{2,4,1,5,3,6}变为升序,可以剪切1将其放到2前,然后剪切3将其放到4前,再如,对于排列{3,4,5,1,2},只需要剪切一
accosmos
·
2020-08-18 09:51
紫书第七章
uva
11280
题目链接:https://vjudge.net/problem/
UVA
-11280AC代码#include#includeusingnamespacestd;vector>maps[103];ints,
IR1S
·
2020-08-18 09:21
图论
城市里的间谍(A Spy in the Metro
UVa
1025)
没错,这里有部分是转发的,因为其中一些注解让我理解了这题的过程。非常感激http://blog.csdn.net/NOIAu/article/details/71517440题意:某城市的地铁是线性的,有n(2≤n≤50)个车站,从左到右编号为1~n。有M1辆列车从第1站开始往右开,还有M2辆列车从第n站开始往左开。在时刻0,Mario从第1站出发,目的是在时刻T(0≤T≤200)会见车站n的一个
摆渡客
·
2020-08-18 09:48
c++基础题目
Symmetry (
UVA
- 1595)
#include#includeusingnamespacestd;structNode{intx;inty;Node(inta,intb){x=a;y=b;}booloperatorx;elsereturna.y>y;}};vectorn1;vectorn2;intmain(){intc,n;intx,y;cin>>c;while(c--){n1.clear();n2.clear();intsu
芝兰玉树
·
2020-08-18 09:16
UVa
UVa
122 (紫书)
#include#include#include#include#includeusingnamespacestd;constintmaxn=500;boolfailed=false;structNode{boolhave_value;intv;Node*left,*right;Node():have_value(false),left(NULL),right(NULL){}};Node*root
会夜明的猪
·
2020-08-18 09:15
紫书
stl
概率dp
UVA
11762 Race to 1
这题就是寻找各种可能到达1的路径,然后求期望值,我们可以把它分解来看,因为路径长度为它走过的所有的点所需路径加上如果到达某一点可以继续走下去的话所增加的路径,然后期望就是总的路径除以所有有可能往下走的点(如果到达1,那么可能的点就是0,除以0是不行的,所以就直接返回0),由从某一点出发到下一点可能的路径值,逐步递推到1,再返回就可以得到结果。#include#includebooljud[1000
丘大路
·
2020-08-18 09:43
动态规划
UVa
- 1587 - BOX
思路:由于出入的w和h不一定哪个大,给数据的处理带来麻烦,所以,先用结构题来存储w和h,并且数据存储要求为w>h,存储到结构体的数组中后,对现有的数据进行排序,排序的规则是,w不同时,按照w升序,否则按照h升序。长方体的6个面的特点:两两面相同,ab,ab,ac,ac,bc,bc。(其中a=1,b=2,c=6)。在编码中进行判断即可。#include#includeusingnamespacest
i逆天耗子丶
·
2020-08-18 09:42
UVa
竞赛常用算法题目解析
【高斯消元】
UVA
11542
题目大意:给出n个数a[i],选择其中一些数相乘,求能得到一个完全平方数的方案数(每个数限用一次),保证每个数都不包含超过500的质因子n#include#include#include#include#defineSFscanf#definePFprintf#defineMAXN1010usingnamespacestd;bitseta[MAXN];intn,f[MAXN],d[MAXN],to
616156
·
2020-08-18 09:11
高斯消元
UVA
1347 Tour
可以将题目转化为两个人同时向最右边走去那么状态表示最容易想到的是d(i,j)两个人位于i,j位置至少还需要走多远但这样无序的策略会造成1)无法判断是否两次经过了同一点2)无法判断是否每个点都走遍了3)i,j的下一步能走哪些点为解决这些问题,定义d(i,j)为1~max(i,j)都走遍了,所以状态d(n,n)肯定就都走遍了但是i可以走i+1~n,j也可以走j+1~n有可能会导致i直接到n,j也是到n
BRCOCOLI
·
2020-08-18 09:11
UVA/LA
动态规划:DP
《算法竞赛入门经典》6-7 Trees on the level
UVA
122——二叉树的层次遍历(宽度优先遍历BFS)
Treesonthelevel
UVA
-122Treesarefundamentalinmanybranchesofcomputerscience(Pundefinitelyintended).Currentstate-of-theartparallelcomputerssuchasThinkingMachines
Mustache_ACM
·
2020-08-18 09:38
xcode工具使用
C语言入门
算法竞赛入门经典
算法竞赛
【DP 训练】Alibaba, ACM/ICPC SEERC 2004,
UVa
1632
#includeusingnamespacestd;#definemaxn10010#defineINF100000000intn,a[maxn],d[maxn];intdp[maxn][maxn][2];intmain(){while(~scanf("%d",&n)){for(inti=1;i=d[r])dp[l][r][1]=INF;dp[l][r][0]=min(dp[l+1][r][0]+
真·skysys
·
2020-08-18 09:38
算法与数学
【双端队列】例题6-1
UVa
210
/*算法竞赛入门LRJ例题6-1(
UVa
210)ConcurrencySimulator*/#include#include#include#include#include#include#include
CN_swords
·
2020-08-18 09:05
杂题
UVA
1347 Tour (双调欧几里得旅行商问题)
dfs版dp#include#include#include#includeusingnamespacestd;#defineN1005doublex[N];doubley[N];doubled[N][N];intn;doubledis(inti,intj){returnhypot(x[i]-x[j],y[i]-y[j]);}///分为两条路来不断地走,一次只会走一步,可以是第一个人前进可以是第二
古宇hhhh
·
2020-08-18 09:59
动态规划
uva
1603
题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=51165/*solution:可以用迭代加深算法作为框架。搜索对象主要有两种:一是正方形,而是火柴。个人采取前者。date:2016/5/15*/#include#include#includeusingnamespacestd;constintmaxn=60;int
林伏案
·
2020-08-18 09:26
uva
OJ
=====各种搜索=====
UVA
12663(线段树+二分)
题意:现在有N座桥,给出每个桥的高度,现在会发M次的洪水,每次洪水会涨至A高度,然后退回B的高度,问有多少桥至少被淹没了K次。题解:先吐槽一下:唉,人太蠢怎么办?连二分都没有想到,其实这一题的key就是想到二分,想到二分去解决,那么这一题就是模板题了。吐槽完毕很明显直接模拟会超时。考虑使用二分,查找高度在B[I-1],到A[I]高度的桥,即在大小在[A[I],B[I-1]]这个区间算一次淹没,然后
ACLewis
·
2020-08-18 09:20
-----数据结构-----
线段树
二分
-----基础算法-----
dp专题-
UVA
- 1347-双调欧几里得旅行商问题-不重复的来回路径问题
题目大意:双调欧几里得旅行商问题(动态规划)给定平面上n(n≤1000)个点的坐标(按照x递增的顺序给出。各点x坐标不同,且均为正整数),你的任务是设计一条路线,从最左边的点出发,走到最右边的点后再返回,要求除了最左点和最右点之外每个点恰好经过一次,且路径总长度最短。两点间的长度为它们的欧几里德距离,如图9-4所示。正确的问题应该是这个:双调欧几里得旅行商问题是一个经典动态规划问题。《算法导论(第
H_ang
·
2020-08-18 09:15
dp
uva
1152 4 Values whose Sum is 0(中途相遇法)
题解:中途相遇法,巧妙利用二分查找代码#include#include#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;#definemaxn10000#defineLLlonglongintcas=1,T;inta[maxn],b[ma
围巾的ACM
·
2020-08-18 08:43
技巧题
UVA
1599IdealPath
//
UVA
1599IdealPath(3)#include#include#include#include#includeusingnamespacestd;constintMAXN=1e5+10;constintINF
以负熵为食
·
2020-08-18 08:11
数据结构
UVA
Ideal Path, NEERC 2010,
UVa
1599 (题解+随机测试数据)
原题:https://
uva
.onlinejudge.org/external/15/p1599.pdf分析:m的上限为200000,用BFS求最短路径,时间复杂度
programmerYA
·
2020-08-18 08:33
算法竞赛入门第七章:竞赛选讲(
Uva
12325,
Uva
1603)
宝箱
Uva
12325:这道题很有思维强度,首先比较容易想到的是枚举宝箱的数量,从0到[n/s1]或者0到[n/s2]。但是由于输入很大,当s1,s2都很小的时候,那么枚举的数量将会非常的巨大。
PYB不开心
·
2020-08-18 08:33
常用算法
ACM
Symmetry
UVA
- 1595
题目大意:有很多坐标,现在让你判断这些坐标可不可以根据某条平行于y轴的线对称。思路:首先要求出那条线的x轴坐标,可与i根据最小的x和最大的x,也可以把所有x加起来求平均值。所有数据放到set中,判断每个点有没有对称点。(直接求平均值可能会有小数,参考了某位大佬的代码,给a*n,这样就不需要给和除n了。#include#include#includeusingnamespacestd;intmain
practer
·
2020-08-18 08:33
其他
uva
1599
原题最近课业比较繁忙,好久没时间写题了。这也算是最短路径问题的改版,求满足一个条件的最短路径。经验不足,一开始自然就想到用DFS(因为比较好写),结果当然TLE了后来才想起来DFS的复杂度是O(N^2),而BFS是O(N+E),所以遇到这种规模比较大的图肯定要用BFS了,根本不是一个数量级啊网上虽然方法比较多,但是描述得不是很全面,我再来整理一下吧主要思路是用两次BFS,比较巧妙第一次逆向BFS(
_星尘_
·
2020-08-18 08:28
OJ
uva
OJ
uva
1595
原题经典的题,验证点集的轴对称性方法就是,将所有点记录,枚举每个点的对称点看是否存在,不存在则NO#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;const
_星尘_
·
2020-08-18 08:28
OJ
Headmaster's Headache
UVA
- 10817 状态压缩
用两个集合来实现的状态压缩。。基本是照着代码敲的。。。收货;(1):stringsstream要在这里会用l。。。(2)这里的if(i>m)这个分界放的好。。还有就是要理解这里到两个集合为什么是这样。。还要知道这个记忆化很好写。。#include#include#include#include#include#include#include#include#include#include#incl
sega_handsome
·
2020-08-18 08:24
状压dp
例题5-10 PGA巡回赛的奖金
UVa
207
算法竞赛入门经典(第2版)第5章C++与STL入门例题5-10PGA巡回赛的奖金
UVa
207http://blog.csdn.net/fanesemyk/article/details/73655739
mrcrack
·
2020-08-18 08:15
C++与STL入门
UVa
11212 - Editing a Book
題目:有一個數字串(1,..,n)的亂序排列,每次可以從中剪切一段連續的數字,黏貼到餘下串的任何位置;如:(1,2,3,4,5):剪切(2,3),餘下(1,4,5),黏貼到45中間(1,4,2,3,5);求把亂序串轉化成遞增序列(,..,n)的最少操作次數(剪切+黏貼,為一次操作)。分析:圖論,搜索,IDA*。dfs搜索,使用估值函數剪枝;枚舉最小步數,找到可行解即退出。估值函數:a/3+b/3,
小白菜又菜
·
2020-08-18 08:14
解题报告
图论
uva
122
#include#include#include#includeusingnamespacestd;structnode{stringnum;stringstr;}tree[1000];mapmymap;intcnt;stringfirst;boolcmp(nodea,nodeb){if(a.str.length()==b.str.length())returna.str>ss;}}intisco
mathloverxiaoli2014
·
2020-08-18 08:37
acm
动态规划特训:城市里的间谍(
UVA
1025)多状态转移
解题思路:分析可知,到达某一站有三种选择,转换至另外三个状态,分别是选择等待,登上向右开的列车(如果有),登上向左开的列车(如果有),因为只有花费时间和站台位置影响最终结果(最少等待的时间),故设置二维数组dp[i][j]表示某状态下花费的最小等待时间,其中i表示总时间,j表示到达站台位置,。边界条件是状态dp[T][N]=0,和dp[T][i]=inf,即在T时刻到达车站N为需要的终止状态,在该
mavises
·
2020-08-18 08:37
UVA
11212 Editing a Book
解析详细可以查看lrj书。本题题解出自刘汝佳算法竞赛入门经典本题可以用IDA*算法求解。不难发现n≤9时最多只需要8步,因此深度上限为8。IDA*的关键在于启发函数。考虑后继不正确的数字个数h,可以证明每次剪切时h最多减少3,因此当3d+h>3maxd时可以剪枝,其中d为当前深度,maxd为深度限制(3)。如何证明每次剪切时h最多减少3呢?如图7-19所示,因为最多只有3个数字的后继数字发生了改变
徐伯莱
·
2020-08-18 08:35
暴力解题
UVa
1595
思想:先将点按x的大小排列,再将x点相同的点按y轴大小进行排列(我用的冒泡法对称轴附近的x相同的点会排序不严格,但不会影响最终判断,正在找寻一种严格排序方式)。对于单数点,找到最中心的点作为对称点,然后从第一个点开始,看是否对应的点的横坐标与纵坐标相符合对称条件(注意如果点在对称轴上,则要判断相应点是否也在对称轴上)。对于双数点,也是先找到最中间的点,再从(a[0][0]+a[n-1][1])/2
眼里一片海
·
2020-08-18 08:04
#
未归类OJ题
[bfs和dfs的性质] Tree Reconstruction
UVa
10410
题目描述题解AC代码题目描述给定一个有n(0#include#includeusingnamespacestd;constintmaxn=1000+1;vectorans[maxn];intpos[maxn];intmain(){intn;while(scanf("%d",&n)!=EOF){intx;for(inti=1;iroot;root.push(rot);for(inti=1;ix)){
loyxCCS
·
2020-08-18 08:53
搜索
[树状dp] Perfect Service
UVA
1218
题意给一棵无根树,可将其中一些节点选为服务节点,每个服务节点可以服务其相邻节点。要求每个节点只被服务一次或者被选为服务节点,求满足要求的服务节点数量最少。题解本题前后用时2h,回头来看其实也是一道简单的树状dp。在做本题时,自己的想法与紫书上的不谋而合。开始考虑时想直接借鉴最大独立集的状态定义(d(i)表示i子树的答案),但之后发现如果这样定义,那么在转移中就无法确认转移合法(满足题目要求)。通过
loyxCCS
·
2020-08-18 08:53
动态规划
[数据结构]拓扑排序
[数据结构]拓扑排序[数据结构]拓扑排序模板应用Self-Assembly[
UVa
1572]题目描述AC代码分析模板intc[maxn];inttopo[maxn];booldfs(intu){c[u]
loyxCCS
·
2020-08-18 08:53
例题6-1 并行程序模拟
UVa
210 双端队列
concurrencysimulatorProgramsexecutedconcurrentlyonauniprocessorsystemappeartobeexecutedatthesametime,butinrealitythesingleCPUalternatesbetweentheprograms,executingsomenumberofinstructionsfromeachprogr
01的世界
·
2020-08-18 08:52
STL
第6章
数据结构基础
模拟
UVa
1025 例题9-1 城市里的间谍
书上已经分析的很详细了,就不再赘述了。其中dp[i][j]表示在i时刻在j车站,还需要等待的时间。train[maxt][maxn][2]表示是否有往左或者往右开的火车#include#include#include#include#include#includeusingnamespacestd;constintmaxn=55;constintmaxt=205;constintINF=10000
01的世界
·
2020-08-18 08:21
————动态规划————
第9章
动态规划初步
Uva
1347 tour(DAG)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=38898题意:有n个点的坐标(n#include#include#include#include#include#includeusingnamespacestd;#definelllonglongint#defineinf1000000000constintmaxn
longshanxiaoxuesheng
·
2020-08-18 08:20
动态规划
UVa
-10817 Headmaster's Headache (位运算)
#include#include#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;#defineINF0x3f3f3f3fconstintN=200005;constintmod=1e9+7;intn,m,s,c[125],st[125]
lljjccsskk
·
2020-08-18 08:49
UVA
动态规划
uva
210
uva
210题目就自己去
uva
网站找了,其实是个特别好的题,早操作系统的有很好的涉及,就是涉及加锁和解锁其实题目没有任何难度,就是直接进行模拟程序运行就可以,最多也就是队列的运用,不过这里默认使用了STL
liuzheng_yong
·
2020-08-18 08:47
c++的基本
UVA
1636 Headshot
https://vjudge.net/problem/51197/origin#include#include#include#include#include#include#include#include#include#include#include#defineinf0x3f3f3f3fusingnamespacestd;typedeflonglongll;intmain(){#ifndef
erge1998
·
2020-08-18 08:42
uva
UVA
1601 _特殊的建图+双向BFS
程序来自:https://blog.csdn.net/qq_29169749/article/details/51420097题目含义:有1-3个东西用小写'a','b','c'表示,我们需要将他们分别移动到'A','B','C'位置,他们可以同时移动,但是不能相互穿过去,类似于不能从ab,转换为ba状态,我们要求解的是最小的步数解读:我们直接看这个题的解法:首先是因为每个点有五种操作方式分别是:
阿_波_
·
2020-08-18 08:05
暴力搜索
Editing a Book
UVA
- 11212(IDA*)
题意给你一个序列,每次可以复制和黏贴一段子序列,问你至少经过多少次操作可以将序列变成有序的思路考虑IDA*,我们考虑一个序列最多是操作8步可以将序列变成有序,所以这个是我们的迭代上界,定义后继不正确的数字个数为h,每一次操作最多是改变3个数字的后缀,所以当h>3*(maxd-d)时剪枝,maxd为当前的最大操作数,d为当前的操作数,这表示我们执行完所有的操作,并且每次操作都是改变最多的3个数字的后
leekerian
·
2020-08-18 08:32
搜索
uva
1347 - Tour(双调欧几里得)
题目大意:给出n个点,确定一条连接各点的最短闭合旅程的问题。解题思路:dp[i][j]表示说从i联通到1,再从1联通到j的距离。dp[i][j]=dp[i-1][j]+dis(i,i-1);dp[i][i-1]=min(dp[i][i-1],dp[i-1][j]+dis(i,j));记忆化代码://0KB58ms#include#include#include#include#includeusi
kalilili
·
2020-08-18 08:51
递推
UVa
1587 有趣的模拟题
背景:这道题ac的时候我是不由自主的仰天长啸啊!!一直WA,WA了十多个小时,我真的不知道错在哪里了,索性搜索别人的解题报告。最后最主要的是借鉴了排序思想。思路:先将六组数据在横向进行排序,大的在左边,然后就对相同的数据进行合并,如果可以组成长方体,那么六组rectangular合并之后一定是三组。对于这三组数据进行纵向的结构体排序,x大的靠上,如果x相等那么就以看y,y大的考上。这样排序之后就得
羁绊残阳
·
2020-08-18 08:14
Uva
11212 编辑书稿(Editing a book,IDE算法)
迭代加深法,可以解决一些看起来更适合用BFS和回溯法的题,但是BFS和回溯法浪费空间,所以迭代加深法更能解决问题。分析:由于编辑的特殊性,只要没达到升序这个条件就可以永远不停的搜下去,最特别的还是那些的错误的路径,也就是说假如一开始就选择了错误的剪切方式,之后这条错误的路会一直往后延伸。。。所以采用IDA*解法,IDA*相比与普通的dfs或bfs,多了一个估值函数,比如我从这一层到第n层,每层最多
LjcoderDCC
·
2020-08-18 08:10
OI
[多维DP]
UVa
1412 基金管理(九元组及编解码)(状态池)
题目思路本题的基本思路是明确的,用d(i,p)表示经过i天之后,资产组合为p时的现金的最大值。另外值得注意的是,本题在考虑买股票时要考虑到当前拥有的现金是否足够,因此不是一个DAG最长/最短路问题,因为某些边u->v的存在性依赖于起点到点u的最短路值。也就是说,本题不能像之前的DAG问题一样“反着定义”:如果用d(i,p)表示资产组合为p,从第i天开始到最后能拥有的现金最大值,会发现状态根本无法转
icecab
·
2020-08-18 08:00
5.aoapc2ch9
例题
有空没空多看看
UVA
- 1347 Tour (双调旅行商问题)
题目描述:点击打开链接题意给你一系列的点,输入保证x升序,一个人从左到右在从右走回左边,出终点和起点以外,每个点走且仅走一次。每个点一次且仅一次的这个条件其实也为我们提供了一定的便利,既然这样,那么完全可以处理成两个人同时从左边出发走到右边,并且走的路径不同,那么我们就需要把每个点都遍历一遍,我为了方便操作我们认为总有一个人走的快而另一个人慢即j#include#include#include#i
hyesuixin
·
2020-08-18 08:55
DP
上一页
40
41
42
43
44
45
46
47
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他