uva10763 - Foreign Exchange

题意不难,思路不难,

只是这样写下来,耗时为0.428ms。有点耗时。。

思路: 首先按照 original location从小到大排序(为了二分查找)然后依次验证是否存在配对的数据,

这里我用了 二分查找,时间稍微快点。

注意,一个数据只能用一次,用过以后,可以用数组标记下来。

代码如下:

#include 
#include 
#include 
const int M = 500000+10;
int st[M][2], n;
bool vis[M];
int comp(const void *a,const void *b)
{
    int *c = (int*)a, *d = (int*)b;
    return c[0] - d[0];
}
int lower_upper_bound(int cur, int state)
{
    int aim = st[cur][1];
    int mid, left = 0, right = n;
    if(state==-1) while(left

真的不知道人家跑了0.004s的代码怎么写的。

你可能感兴趣的:(uva)