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
uvalive
UVALive
4256 Salesmen
题目大意:给你一个连通无向图,在给你一个序列,要求你把它转换成另一个序列,该序列两两点之间或者在图上是连通的,或者是相同的,要求修改的点数最小。思路:典型的DP题,设d[i][j]表示从1到第i个位置,以j为结尾的最小修改点数,那么状态转移方程为:d[i][j]=min(d[i-1][k],j和k满足连通或者相等)。代码如下:#include #include #include usingname
u010794465
·
2013-08-02 10:00
UVALive
4794 Sharing Chocolate
题目大意:给你一块c*l的巧克力,要你正好分成n块,给你n块的面积,切巧克力时,只能横着或者竖着切,问你可不可能。思路:我先开始自己的做法是按照面积,给每份一个id,然后每次切一份,dfs下去,看看可不可以,设d[c][l ][s],表示行数为c,列数为l的巧克力分成状态s可不可以,然后在记忆化一下,发现数组太大开不下,无奈之下,开为bool,一交是RE,虽然不懂为什么是RE,但那么大的数组,感觉
u010794465
·
2013-08-01 22:00
UVALive
3882 And Then There Was One
题目大意:经典约瑟夫环问题,n个人,围成一圈,第一次删第m个人,以后每k个人删一次,问你最后留下的是谁。思路:为了处理方便,我们约定n个人的编号为0~n-1,最后答案+1就好,先不考虑m,设f[n]为这n个人最后留下的编号,那么f[n+1]=(f[n]+k)%(n+1),f[1]=0。根据这个递推式,一直推到n-1,然后再来处理m的问题,第一个人我们是删m,那么最后n个人答案f[n]=(f[n-1
u010794465
·
2013-07-31 13:00
uva11285
uvalive
3983 Hackers' Crackdown
uva11285
uvalive
3983 Hackers' Crackdown // AC // A.myc #include<iostream> #include<cmath
A.myc
·
2013-07-31 06:00
动态规划
ACM
uvalive
状态压缩dp
uva
UVAlive
5869 Airport 解题报告
题目Tri_integralTrainning4题意:一个图,有两种点:旅店和旅客中心。要建一个机场p,对于每个旅店i,用 s(p,i)表示从机场到某个旅客中心再到这个旅店的最短距离。每个旅店有一个旅客人数t(i),要使 s(p, i)×t(i)的最大值最小。机场可以建在任意点上或边的某个位置上。题解:首先用floyd处理任意一个点作为机场的各 s(p, i)。然后枚举每条边二分答案:对于二分的答
u010638776
·
2013-07-29 21:00
uvalive
3401 poj 2741 Colored Cubes
///
uvalive
3401poj2741ColoredCubes //AC //A.myc #include #include #include #include usingnamespacestd
Amyc
·
2013-07-29 21:00
动态规划
ACM
uvalive
uva
单调队列
UVALive
:6182 Ginkgo Numbers
其实是一道挺简单的题,比较重要的信息就是提供的第一条充要条件。依据这个可以判断【m,n】是否为【p,q】的因子。怎么找到这些符合的m,n呢?不用太多技巧,只要挨个数试可以了。这里要注意 1 #include #include #include #include usingnamespacestd; intmain() { //freopen("in.txt","r",stdin); intT;
kkkwjx
·
2013-07-27 18:00
暴力
Beijing 2004 / UVa 1203 /
UVALive
3135 / ZOJ 2212 Argus (优先队列)
1203-ArgusTimelimit:3.000secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=247&page=show_problem&problem=3644https://icpcarchive.ecs.baylor.edu/index.php?option=com_
synapse7
·
2013-07-25 11:00
C++
ACM
ZOJ
uva
UVALive
5864 Register Allocation 解题报告
题意:给出平面上n个点的坐标,给出起点和终点,找出一条路径使得起点到重点的经过的最长边最短,并输出这个最短的值。解法:二分长度+bfs判断是否可以到达//time112ms #include #include #include #include #include #include #include constintmaxn=1005; usingnamespacestd; structPoint{
u010638776
·
2013-07-23 20:00
UVALive
5862 City Travel 解题报告
题意:给n个点m条边的图,每条边有等级,不能连续走两条等级相同的边,求s到t的最短路。解法:最短路的变形,用二维的spfa,dist[i][j]表示经过等级为j的边到点i的最短路。但初始化的时候要注意是把dist[s][0]放进队列。//time29ms #include #include #include #include #include #include usingnamespacestd;
u010638776
·
2013-07-23 20:00
UVALive
5861 Hidden Terminal Problem 解题报告
题意:给出路由器的通信半径,如果两个之间超过半径,就需要一个进行转接,组成hidden-terminalset,是无序的,并保证这个转接点一定存在。问有几个hidden-terminalset。解法:数据范围比较小,按顺序暴力的找一遍就可以。//time9ms #include #include #include #include usingnamespacestd; #definemaxn105
u010638776
·
2013-07-23 20:00
UVAlive
5866 Robot Arm Planning 题解
题目Tri_integralSummerTraining4题意:有n+1的结点的链,每条边(结点圆心距)100,每个结点半径为10,每次可以旋转45°,但是不能自交。求是否通过旋转某些结点使得最上面的结点完全包含在一个矩形内。题解:首先矩形每条边向内缩10,这样只要最上面的点的圆心在新矩形即可。然后枚举所有节点旋转的角度,加上判断是否自交和剪枝,不会超时的。因为时间紧,代码写的很丑,请轻拍……//
u010638776
·
2013-07-21 22:00
UVAlive
5867 Finding Feasible Paths 题解
题目Tri_integralSummerTraining4题意:一个程序,按照当前的参数执行的顺序也不一样。对于所有可能的参数,检测题目给出的执行顺序是否可能。题解:模拟……有2种infeasible的情况:1、没有数据能满足执行顺序(前后矛盾)。2、没有正确返回,比如返回后应该执行11的,却跑到21去了,反过来也一样。//Time:46ms //Memory:0KB //Length:2184B
u010638776
·
2013-07-21 22:00
UVAlive
5863 Probability Computation 题解
题目Tri_integralSummerTraining4题意:一个n位的二进制数x,已知每一位为1或0的概率,求xmodq==r的概率。题解:以dp[i][j]表示i位及i位之前的数模q为j的概率,那么转移时向加0和加2^i转移,最后dp[n][r]为答案。 //Time:9ms //Memoty:0KB //Length:1019B #include #include #include #in
u010638776
·
2013-07-21 22:00
UVAlive
5864 Register Allocation 题解
题目Tri_integralSummerTraining4题意:有一些事件,已知发生的时间段(闭区间)。如果两个事件发生的时间没有交集,则可以安排在同一天,求至少要几天。题解:将所有事件插入set中,一个事件发生后,选择第一个在它结束后发生的事件,如果没有,开始新的一天。//Time:26ms //Memory:0KB //Length:1047B #include #include #inclu
u010638776
·
2013-07-21 22:00
UVALive
6195 The Dueling Philosophers Problem 解题报告
题意:给出一些论文,一些会被另一些引用,被引用的论文必须排在引用它的论文的前面。如果存在大于一个个合法的顺序输出2,存在一个输出1,不存在输出0.解法:裸的拓扑排序,但题目m的数据范围少了一个0,被坑了一下午,天灾人货//time162MS #include #include #include #include #include usingnamespacestd; constintmaxn=50
u010638776
·
2013-07-21 20:00
UVALive
6179 Windmill Animation 解题报告
题意:给定平面上n个点的坐标,在一个点上放一条直线,并给出直线的方向,将直线以该点位轴逆时针转,遇到下一个点时,就以这个点为轴逆时针转动。按顺序输出前m次遇到的点的序列。解法:有atan2计算点和坐标轴的夹角,在[-pi,0]的点变成[pi,2*pi]。找逆时针方向上距离当前直线最近的点就可以了。值得注意的是旋转的是直线不是射线,所以>pi的要减去pi#include #include #incl
u010638776
·
2013-07-21 01:00
UVALive
2995 Image Is Everything 策略问题
#include #include #include #include usingnamespacestd; charpos[10][10][10]; charview[6][10][10]; intn; voidget(intk,inti,intj,intlen,int&x,int&y,int&z) {//根据6个视图的不同性质得到x,y,z if(k==0){x=len;y=j;z=i;} i
a601025382s
·
2013-07-17 10:00
策略
UVALive
3218
#include #include #include #include #include #include #defineX100010 #defineeps1e-6 #definepi3.14159265358979323 usingnamespacestd; structpoint{ doublex,y; point(){x=0.0;y=0.0;} ~point(){} }p[110],q[X
zzxyyx_1
·
2013-06-19 22:00
UVALive
4992
#defineeps1e-12 #defineinf1e7 #include #include #include usingnamespacestd; structpoint{ doublex,y; }p[50010],s[100010]; structline{ pointa,b; doubleang; }ln[50010],deq[100010]; booldd(doublex,double
zzxyyx_1
·
2013-06-19 22:00
UVALive
2797
#include #include #include #defineX210 #defineeps1e-8 usingnamespacestd; boolg[X][X],vis[X]; structpoint{ doublex,y; }p[X]; intn,flag; voiddfs(intu){ vis[u]=1; if(u==1){ flag=1; return; } for(inti=0;i
zzxyyx_1
·
2013-06-19 22:00
UVALive
3890
#defineeps1e-7 #include #include #include usingnamespacestd; structpoint{ doublex,y; intid; voidinit(doublexx,doubleyy,inti){ x=xx;y=yy;id=i; } booloperatoras){ as=dis(p[i],p[q]); u=i;v=q; } } } intcm
zzxyyx_1
·
2013-06-19 22:00
UVALive
2218
#defineeps1e-17 #include #include #include usingnamespacestd; structpoint{ doublex,y; }p[210],s[210]; structperson{ doubleu,v,w; voidinit(){ scanf("%lf%lf%lf",&v,&u,&w); } }h[210]; doubleA,B,C; double
zzxyyx_1
·
2013-06-19 22:00
UVALive
4728
#defineeps1e-7 #include #include #include usingnamespacestd; structpoint{ doublex,y; intid; voidinit(doublexx,doubleyy,inti){ x=xx;y=yy;id=i; } booloperatoras){ as=dis(p[i],p[q]); u=i;v=q; } } } intcm
zzxyyx_1
·
2013-06-19 22:00
UVALive
4108 SKYLINE
这题写了三四天,真是写郁闷了,后来才发现自己这题写2B了,唉,桑心。题意:在地平线上依次建n座建筑物。建筑物的修建按照从后往前的顺序,修建完一座建筑物以后,统计它在多长的部分是最高的,并把这个长度称为“覆盖度”,最后输出总的覆盖度。思路:刚开始的时候,我的思路比较简单,就是记录每个区间最高的建筑物有多高,如果要修建的这个建筑物的高度比这个区间最高的建筑物还高,那么这个结果就要加上这个区
qian99
·
2013-06-19 20:00
线段树
ACM
UVALive
6047 Perfect Matching 解题报告
题目BUPTSpringTraining64.06题意:有一些字符串,多少对字符串可以拼成一个回文串?解法:哈希。
u010638776
·
2013-06-10 22:00
UVALive
6044 Unique Path 解题报告
题目BUPTSpringTraining64.06题意:给你一个图,求有多少个点对,之间的路径有且只有一条(点可以重复访问边不可以)。解法:删掉所有的双连通子图,对剩下的每一个连通块,若有n个结点,则有n*(n-1)/2个点对//Time:185ms //Memory:0KB //Length:2039B #include #include #include #include #include #
u010638776
·
2013-06-10 22:00
UVAlive
6040 Stop Growing! 解题报告
题目BUPTSpringTraining64.06题意:ABCDE五个数,告诉你每轮各自的变化,问什么时候总和能超过M解法:说得胡里花哨,其实就是每轮总和倍增。//Time:9ms //Memory:0KB ///Length;879B #include #include #include #include #include #include usingnamespacestd; longlon
u010638776
·
2013-06-10 22:00
UVaLive
6038 - Grandpa's Walk 解题报告
题目BUPTSpringTraining64.06题意:一个n*m的矩阵,元素为雪地高度,假如从一个点出发,沿四方向数值严格下降的顺序到另外一个点,且起点周围没有更高的,终点周围没有更低的,则是一条路。求有多少条这样的路。解法:首先初始化,假如一个点可以作为起点则dp[i][j]=1。然后对将所有点排序,从大到小对所有小于它的点进行转移,如果一个点是终点则将值加到答案上。Time:43ms Mem
u010638776
·
2013-05-23 11:00
UVALive
- 6039
想法题,只需要分析一个点及其直接连通的边即可,维护一个vtot记录总和,vmax记录最大的边权,如果vmax>=vtot-2,那么一共有vmax个自行车。否则,如果vsum是偶数,剩下的边一定会匹配,如果vsum是奇数,除去一条边,剩下的一定会匹配。 #include #include #include #include #include #defineN100100 usingnam
·
2013-05-11 20:00
live
UvaLive
-5713-Qin Shi Huang's National Road System
这个题在参考了某位牛人的博客后做出来的,地址:http://blog.csdn.net/hyogahyoga/article/details/8066812第一次做这种对最小生成树建树的~主要的策略就是枚举道士修的那条路代码:#include #include #include #include #include usingnamespacestd; constintmaxn=10e5+1000;
z309241990
·
2013-05-11 14:00
最小生成树
UVALive
- 6039
想法题,只需要分析一个点及其直接连通的边即可,维护一个vtot记录总和,vmax记录最大的边权,如果vmax>=vtot-2,那么一共有vmax个自行车。否则,如果vsum是偶数,剩下的边一定会匹配,如果vsum是奇数,除去一条边,剩下的一定会匹配。#include #include #include #include #include #defineN100100 usingnamespaces
waitfor_
·
2013-05-10 17:00
UvaLive
-5902-Movie collection
继续树状数组~代码:#include #include #include usingnamespacestd; constintmaxn=200100; intn,m,t[maxn*2],p[maxn*2]; intlowbit(intx) { returnx&(-x); } intsum(intx) { intsum=0; while(x>0) { sum+=t[x]; x-=lowbit(x)
z309241990
·
2013-04-21 21:00
树状数组
UvaLive
-2191-Potentiometers
这个题属于一个典型的区间维护题吧,有2个操作,1、Sxy把第x个数改成y,2、Mxy求出[x,y]区间所有数的和,个人用树状数组做的,因为树状数组好写点,还是比较简单~代码:#include #include #include usingnamespacestd; constintmaxn=400001; intn,t[maxn]; intlowbit(intx) { returnx&(-x);
z309241990
·
2013-04-21 19:00
树状数组
UVALive
6047 Perfect Matching(字符串哈希)#by zh
周三做这场比赛的练习,这题过的人挺多的,但是一直没有好的思路。当时想的时候以为是字典树,但是具体的不知道该怎么做,后来看别人AC的代码才知道用简单的字符串哈希,或者其他的比如字母个数的限制条件优化一下就能过了,确实挺简单的,当时没有想到。写这题也没找什么字符串哈希的函数就是简单的哈希一下,如果相同再枚举判断一下就好了,有人可能对自己的哈希函数(或者说是人品)太自信,哈希值一样就认为是回文,我那样的
XDU_Truth
·
2013-04-21 01:00
UVALIVE
6189
这道题我做了好几天。。。太弱了。。。最后看别人的代码过的。首先二分答案,判断可行性时,先可以通过集合间的子集关系的传递性,建立关系矩阵。接着建立一个矩阵存储集合之间的交集是否一定为空,这里有一个性质,如果A是B的子集,且A与B的交集为空,则A为空集。(另外如果A与A交集为空,则A为空集)最后扫描一下不等和交集非空的条件进行判断即可。#include #include #include #inclu
waitfor_
·
2013-04-20 20:00
UvaLive
-2083- Strategic game
树形DP的基础~代码:#include #include #include #include usingnamespacestd; constintmaxn=1501; vectore[maxn]; intn,dp[maxn][2]; voidDFS(intu,intf) { dp[u][0]=0;dp[u][1]=1; for(inti=0;i
z309241990
·
2013-04-19 21:00
树形DP
uvaLive
4475 - Dinner Hall(贪心)
1、https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=24762、题目大意:给定一些信息,E表示进入,X表示退出,?表示不确定,求在某一个时间内最多在大厅的人数贪心做,先按时间排序,然后让时间尽可能往前的是E,3、题目:TheUniversit
sdjzping
·
2013-04-08 19:00
简单树形dp
uvaLive
4472
#include #include #include #include #include #include usingnamespacestd; constintmaxn=100002; intt,n; vectorg[maxn]; intdfs(intu,intfa) { inti,k,l=g[u].size(); multisetp; for(i=0;i>j; g[j].push_back(
azheng51714
·
2013-04-07 16:00
uvalive
4467
E- ElectricBillTimeLimit:3000MS MemoryLimit:0KB 64bitIOFormat:%lld&%lluSubmit StatusDescriptionIt'syear2100.Electricityhasbecomeveryexpensive.Recently,yourelectricitycompanyraisedthepowerrates
yan_____
·
2013-04-07 00:00
uvalive
3942Remember the word
题意:给出一个单词text,仅仅由小写字母组成,并给出若干个单词word[i],用word[i]去拼接出text,问有多少种方法分析:典型的Trie的题目。第一次看训练指南的时候套用刘汝佳的模板结果wa(显然我不会用),后来发现很多人都是用指针写的,大部分Trie的题目用指针就能ac,索性自己写了一份使用指针的Trie的模板代码:ViewCode1#include 2#include 3#in
·
2013-02-17 11:00
word
uvalive
4254Processor
题意:有n个任务,每个任务有三个参数r、d、w表示在[r,d]时间段内必须执行的工作量为w。处理器的工作速度可以变化,问执行中最大速度的最小值。分析:题目显然提示了要用二分。代码:ViewCode1#include 2#include 3#include 4#include 5#include 6#include 7usingnamespacestd; 8constintMAXN=2
·
2013-02-15 12:00
process
uvalive
3983Robtruck
题意:有n个垃圾,第i个垃圾坐标为(xi,yi)。有一个机器人按照编号从小到大哦捡起所有的垃圾并扔进垃圾桶,垃圾桶再远点。机器人手中垃圾总重量不能超过C,两点之间的距离为曼哈顿距离,求机器人行走的最短总路程分析:d[i]=min{d[j]+dist2origin(j+1)+dist(j+1,i)+dist2origin(i)|j 2#include 3usingnamespacestd; 4
·
2013-02-15 11:00
live
uvalive
3882And then there was one
题意:n个人报数,编号从1到n,第一次报m的人出列,以后每数k个数删除一次,问最后出列的人在最开始的时候编号是多少分析:约瑟环问题的变形,链表的方法不行,会tle。其实原题可以认为是第一次删除编号m,然后处理一个规模为n-1的子问题考虑这样一个问题:n个人(编号0~(n-1)),从0开始报数,报到m-1的退出,剩下的人继续从0开始报数。求胜利者的编号。我们知道第一个人(编号一定是(m-1)%n)出
·
2013-02-14 12:00
live
uvalive
2965Jurassic Remains
题意:给定n个大写字母组成的字符串,选择尽量多的串,使得每个大写字母都能出现偶数次。分析:暴力枚举O(2n)不行。采用密码学中的中途相遇攻击原理,用stl的map实现:先取得前一半的判断结果然后后一般在前一半的基础上判断代码:ViewCode1#pragmawarning(disable:4786) 2#include 3#include 4#defineDEBUG 5usingnames
·
2013-02-12 19:00
main
uvalive
3695Distant Galaxy
题意:给出平面上的n个点,找一个矩形,使得边界上包含尽量多的点。代码:ViewCode1#include 2#include 3#include 4#defineDEBUG 5usingnamespacestd; 6structZZ{ 7intx,y; 8booloperatorb?a:b; 14} 15constintMAXN=100+10; 16ZZp[MAXN]; 17
·
2013-02-12 15:00
live
uvalive
3295Counting Triangles
题意:给出一个a*b的网格,在网格上取不共线的三点构成三角形,求三角形总数。分析:就是一一道简单的组合数计算题目,设总结点数为n,则取三个节点的个数为C(n,3),然后减去横向、竖向、斜向的三点共线的个数即可,斜线三点共线等价于所枚举的矩形的长宽成倍数关系,即gcd不为1代码:ViewCode1#include 2#include 3usingnamespacestd; 4longlongg
·
2013-02-12 11:00
count
uvalive
3209City Game
题意:给定一个m*n的矩阵,其中一些个字是空地(F),其他是障碍(R)。找出一个全部由F组成的面积最大的矩阵,输出其面积的3倍。分析:简单暴力枚举,O(m3*n3),肯定不行。对于某一块F,设up[i][j]表示其上方的空地个数(就像一条悬线),zl[i][j]表示悬线能往左边走到的边界线的坐标,zr[i][j]表示悬线能往右边走到的边界的坐标,那么面积s=(zr[i][j]-zl[i][j]+1
·
2013-02-12 11:00
game
uvalive
2678Subsequence
题意:有n个正整数组成一个序列,给定整数S,求长度最短的连续序列,使得他们的和大于等于S分析:设输入的序列为A[i],i=1..n,构造前缀数组B[j],j=1..n,B[j]=B[j-1]+A[j],规定B[0]=0,当B[j]-B[i-1]>=s的时候i增加,直至B[j]-B[i] 2#include 3usingnamespacestd; 4#defineDEBUG 5constin
·
2013-02-11 17:00
sequence
uvalive
3905Meteor
题意:给你一个矩形照相机,还有n个流星的初始位置和速度,求能找到流星最多的时刻,注意,在相机边界上的点不会被照到。分析:相机的边界是固定的,只需要判断每一颗流星是否在照相机的区域内出现过,如果出现过,记录其出现的时间区间[ai,bi],那么问题转化为求一个时间t使得此时有最多的区间经过这个点,类似于“扫描线”ViewCode1#include 2#include 3usingnamespace
·
2013-02-11 17:00
live
上一页
16
17
18
19
20
21
22
23
下一页
按字母分类:
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
其他