网站可以查出在哪里做的吗,网络维护管理,网站没有关键词,怎么经营团购网站解析
和国王游戏一样的做法 容易写出cmp函数的依据#xff1a;
min(u.a,v.b)min(u.b,v.a)但是这个题的比较函数有一个取min的操作 这个东西会有一个问题#xff1a;不满足不可比性的传递性 通俗的说#xff0c;xy,yz,但是x不一定z 比如说如果y的a和b都很小#xff0c…解析
和国王游戏一样的做法 容易写出cmp函数的依据
min(u.a,v.b)min(u.b,v.a)但是这个题的比较函数有一个取min的操作 这个东西会有一个问题不满足不可比性的传递性 通俗的说xy,yz,但是x不一定z 比如说如果y的a和b都很小就会出现这个无论a和c之间关系如何等式总是成立的尴尬情况 为了避免这个东西引入了Johnson 法则 设置d d1(ab) d0(ab) d-1(ab) 在d不同时优先按照d排序显然d不同时是正确的 d相同在把他们的最小值比较即可
bool operator(const node x)const{if(dx.d){if(d0)return ax.a;//这里的等于是将上面的情况2找了一种方法排序else return bx.b;}return dx.d;
}代码
(先是自己搞的所有没有按题解写
#includebits/stdc.h
using namespace std;
#define ll long long
#define il inline
const int N4e3100;
const int M150;
const int mod998244353;
const int mx7e4;
inline ll read(){ll x0,f1;char cgetchar();while(!isdigit(c)){if(c-) f-1;cgetchar();}while(isdigit(c)){xx*10c-0;cgetchar();}return x*f;
}
int n;
struct node{int a,b,id;
}p[N];
bool cmp (const node u,node v){if(min(u.a,v.b)!min(u.b,v.a)) return min(u.a,v.b)min(u.b,v.a);return u.av.a;
}int main(){nread();for(int i1;in;i) p[i].aread(),p[i].idi;for(int i1;in;i) p[i].bread();sort(p1,p1n,cmp);int ta0,tb0;for(int i1;in;i){tap[i].a;tbmax(ta,tb)p[i].b;}printf(%d\n,tb);for(int i1;in;i){printf(%d,p[i].id);putchar( );}return 0;
}
/**/