UVA 1345 - Jamie's Contact Groups
题目链接
题意:给定一些人,每个人有一个分组,现在要每个人选一个分组,使得所有分组中最大的人数最小,问这个最小值是多少
思路:二分答案,然后利用最大流去判定,源点往每个人建一条边容量为1,每个人往各自的分组建一条边,容量为1,分组向汇点建一条边,容量为二分出来的值,这样跑一下最大流如果最大流等于n,就是能满足
...
分类:
其他好文 时间:
2014-09-18 18:50:34
阅读次数:
192
题目大意:给定一条折线,要求选择一个点建立高度为h的瞭望塔,要求瞭望塔塔顶可以看到折线上的每一个点,求h的最小值
正解:半平面交
不会!
于是我们选择模拟退火来寻找瞭望塔的横坐标
确定瞭望塔的高度的时候我们选择二分处理 对于二分的每一个值 我们把折线上的端点从左到右枚举 瞭望塔的塔尖到每个端点的连线必须从左到右逆时针顺序 否则就会被遮挡
如图,塔尖到点2的连线在到点1的连线的顺时...
分类:
其他好文 时间:
2014-09-17 13:43:02
阅读次数:
316
这题应该是POJ最强大的一道数位DP了吧 正解是AC自动机 不会 还是写数位DP吧
题目大意:我们令含有666的数字为不吉利数字,则可以得到一个递增数列:
{an}=666,1666,2666,3666,4666,5666,6660,6661,....
给定n,求an
首先我们把这个问题转化成另一个问题:给定n,求1~n中有多少个数含有666
解决了这个问题,把原问题二分答案即可
首先...
分类:
其他好文 时间:
2014-09-16 17:28:00
阅读次数:
243
时间限制:2s空间限制:30M题意: 有K台挤奶机(编号1~K),C头奶牛(编号K+1~K+C),给出各点之间距离。现在要让C头奶牛到挤奶机去挤奶,每台挤奶机只能处理M头奶牛,求使所走路程最远的奶牛的路程最短的方案。Solution: 先Floyd求最短路,然后最大流二分答案ans。 ...
分类:
其他好文 时间:
2014-09-12 23:25:54
阅读次数:
221
UVA 11478 - Halum
题目链接
题意:给定一个有向图,每次操作可以选择一个结点,把以这个点为起点的边权值+d,以这个边为终点的-d,问经过操作后,能得到的边权最小的最大值是多少,并且要判但是否无穷大或无解
思路:转化为差分约束,设一条边,他增加的权值为sum(u)减少了sum(v),那么二分答案x,得到一个不等式sum(u) - sum(v) + w(u, v) >...
分类:
其他好文 时间:
2014-09-03 11:20:06
阅读次数:
474
UVA 1146 - Now or later
题目链接
题意:n个飞机,每个飞机有一个早到时间和一个晚到时间,问怎么安排飞机,使得飞机到的间隔的最小值最大
思路:二分答案,然后利用2-set去判断,如果两个飞机的两个时刻间隔比这个时刻小,那么就是表示不能同时满足这两个条件,就加一条xi^xj的边进去,然后利用2-SET判定一下
代码:
#include
#includ...
分类:
其他好文 时间:
2014-08-30 16:29:39
阅读次数:
209
这是最大化最小值的一类问题,这类问题通常用二分法枚举答案就行了。二分答案时,先确定答案肯定在哪个区间内。然后二分判断,关键在于怎么判断每次枚举的这个答案行不行。我是用a[i]数组表示初始时花的高度,b[i]表示要达到当前枚举的答案(即mid的值)需要这朵花再涨多少。这两个数组很好算,关键是一次浇连续...
分类:
其他好文 时间:
2014-08-27 20:31:38
阅读次数:
283
题意:给定迷宫,可以更改高度比,问如何使最短路等于输入数据。思路:由于是单调的,可以用二分答案,然后BFS验证。这里用优先队列,每次压入也要进行检查(dis大小)防止数据过多,A*也可以。好久不写图论,WA成狗#include #include #include #include #include ...
分类:
其他好文 时间:
2014-08-22 22:21:59
阅读次数:
343
output
standard output
Little beaver is a beginner programmer, so informatics is his favorite subject. Soon his informatics teacher is going to have a birthday and the beaver has decided to prepar...
分类:
其他好文 时间:
2014-08-21 19:31:34
阅读次数:
259
//题意:给定N朵花的原先的高度,从左到右排列,
//最多浇水m天,每天只能浇一次,每次使得连续的w朵花的高度增长1,问最后最矮的花的高度最高是多少。
# include
# include
# include
using namespace std;
int main()
{
__int64 n,m,w,l,r,i,m1,sum;
__int64 a[200010],b[2...
分类:
其他好文 时间:
2014-08-21 19:26:54
阅读次数:
239