HOJ 3034 Mysterious (二分)
摘要:这道题比赛当时没做出来。后来听jingo讲了用二分,试了一下,过了。#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <memory.h>
#define M 1000001
using namespace std;
//对天数n进行二分
int menu[10001][51];
int days,dishes,budget; bool check(int mid
阅读全文
posted @
2012-08-24 16:20
MicZ
阅读(153)
推荐(0)
HOJ 2608 Assemble(二分)
摘要:用一个结构体保存每一个部件,包括quality,price,name,type.先按quality降序排序,注意排序的时候不要将同类的部件打散,要保证同一类部件连在一起。再用componets数组,记录从i到j是哪一个部件。如componets[i]=0,componets[i+1]=3,则知第0到第2条记录是属于部件i的。然后关于质量进行二分。质量的范围取所有部件的质量最大、最小值。若在所有部件类型中,都能满足大于等于这个质量,并且花费不超过budget的,return true,然后调高mid,再进行判断。最后获得一个尽可能高的最低质量。否则return false。调低mid。总之,还是
阅读全文
posted @
2012-08-24 16:08
MicZ
阅读(208)
推荐(0)
HOJ 2278 IP Filtering (二分)
摘要:HOJ 2278主要思路:将IP地址看成4位256进制的数,转化成十进制,一个segment就是一个区间。先将所有的segment按左端点升序排列,如果几个segment有重叠,则将它们合并成一个区间。int dn=0; l=seg[0].start; r=seg[0].end; for(int j=1;j<i;j++) { if(seg[j].start<=r) { r=max(seg[j].end,r); continue; } seg[dn].s...
阅读全文
posted @
2012-08-24 16:06
MicZ
阅读(163)
推荐(0)