昨天比赛的时候没有做出来,本来是想用贪心的,但是贪了好久都没有招,
今天在网上搜了解题报告~好像说这是一类区间选点问题:
有一个好的做法:
(1)首先把题目中的时间全转化为分钟,那么区间就在0-1440中间
(2)对于n组人,有一个si 和一个ei,那么开个数组, cnt[si]+=d; cnt[ei]-=d;
( 3 ) 也就是说在数轴上讲到达的这点加上d,离开的这点减去d;
...
分类:
其他好文 时间:
2014-07-28 16:17:03
阅读次数:
181
这题卡了好久啊,最小割模型很容易想,拆点就行。就像poj的Thieves一样
每个点 a拆成 a->a',容量为1。
其他相连的点 a'->b ,容量为INF
源连接s',t连接汇
问题在于输出最小的割集
更好的方法我还不会,只能枚举。
这里基于贪心的思想,从小到大删边,
若删除i->i',会使得最小割变小,则输出i,并且i->i'这条边不要恢复
若最小割不变,则恢复这条边...
分类:
其他好文 时间:
2014-07-28 16:15:43
阅读次数:
283
题目:uva10716Evil Straw Warts Live(贪心)
题目大意:给出一个字符串,问如何交换字母位置能够得到回文。这里求最少的交换次数。如果不能通过交换得到回文,输出Impossible。
交换只允许和相邻的字母进行交换。
解题思路:贪心策略:每次都是先将距离两边距离和最短的对称的字母移到到两边,这样这两个字母就对称了,且交换次数是最少的。然后就将这两个字母...
分类:
其他好文 时间:
2014-07-28 16:08:33
阅读次数:
241
TIANKENG’s restaurant
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 324 Accepted Submission(s): 167
Problem Description
TIANK...
分类:
其他好文 时间:
2014-07-28 15:56:23
阅读次数:
257
UVA 1511 Soju
题目链接
题意:给定两个点集,要求两个点集各取一点曼哈顿距离最小值,保证点集1的x都小于0,点集2的x都大于0.
思路:由于x2 > x1所以只要考虑y值,如果一个y比另一个y大,那么就是y1 - y2,否则为y2 - y1,这样一来只要对这两种情况,分别进行两次排序贪心计算即可
代码:
#include
#include
#inclu...
分类:
其他好文 时间:
2014-07-28 00:14:09
阅读次数:
176
题目链接:
啊哈哈,点我点我
题目:
Radar Installation
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 52037
Accepted: 11682
Description
Assume the coasting is a...
分类:
其他好文 时间:
2014-07-27 23:46:29
阅读次数:
345
贪心+并查集fighting~~~~~!! 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define maxn 300 7 #define INF 0x3fffffff 8 int par[maxn]; ...
分类:
其他好文 时间:
2014-07-27 21:36:35
阅读次数:
182
# include
# include
# include
using namespace std;
int main()
{
int n,i,j,k,count;
int flag1[1010],flag2[1010],a[1010],b[1010];
while(~scanf("%d",&n),n)
{
for(i=0;i<n;i++)
scanf("%d",&a[...
分类:
其他好文 时间:
2014-07-27 11:41:45
阅读次数:
190
# include
# include
# include
using namespace std;
int main()
{
int i,n,s;
__int64 sum ;
int cost[10010],num[10010];
while(~scanf("%d%d",&n,&s))
{
for(i=0;i<n;i++)
scanf("%d%d",&cost[i],&...
分类:
其他好文 时间:
2014-07-27 11:34:02
阅读次数:
144