- 博客(5)
- 收藏
- 关注
原创 Sicily 1794. Missiles
A国有n个城市,B国有m个城市,(n>=m),给出每对城市间导弹的飞行时间,求A全歼B至少需要多少时间。显然,AB可以形成一个二分图,题目求在所有最大匹配中,最大边最小能取多少。 求最大匹配用匈牙利算法。但为了求最大边的最小值,我们可以在边的取值范围内进行二分搜索,依次调用匈牙利算法,检查是否能形成m对匹配。需要注意的是,数据给出的城市间导弹飞行时间不一定是最短的。需要对所有顶点用
2010-03-26 17:50:00 1126
原创 Sicily 1793. Numbers
设x=GCD(a,b),y=LCM(a,b)。a=x*k1b=x*k2, 其中 GCD(k1,k2)=1有y=x*k1*k2; 求min(a,b),即min(k1,k2)有k1和k2两个未知数,数据规模也不是特别大,可以用搜索求解。因为只需找到min(k1,k2),我们从k1,k2最接近时开始搜索,只要找到符合条件的解便能保证最优,所以搜索量还是很小的。 #includ
2010-03-25 01:35:00 1434 1
原创 Sicily 1792. Hengheng's Problem
模拟题,先按时间段的先后排序,然后从头扫描一边寻找最大连续空闲时间段。注意不要遗漏最后边界情况。 #include#include#includeusing namespace std;struct T{ //s为开始时间,t为结束时间 int s,t;};bool cmp(const T &a, const T &b){
2010-03-25 01:15:00 1461
原创 Sicily 1791. Philia's Problem
用模拟的方法算很繁琐,而且很容易出错。其实可以用蔡勒公式,快速求某一天是星期几。#includeint days[12]={31,28,31,30,31,30,31,31,30,31,30,31};bool isLeapYear(int y){ return ( (y%100!=0)&&(y%4==0) ) || (y%400==0);}/
2010-03-25 00:53:00 1360
原创 Sicily 1790. Single Round Match
水题。数据比较大,显然得用高精度。#include #includeusing namespace std;int main(){ int t; char a[1004], b[1004]; scanf("%d", &t); for (int i=0; i<t; ++i) { scanf("%s%s",a
2010-03-25 00:35:00 1193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人