作者:马芷靈 | 来源:互联网 | 2023-09-15 21:45
学习2-sat问题,,看的博客。。JJJJKKJhttp:www.cnblogs.
学习2-sat问题,,看的博客。。 JJJJKKJ
http://www.cnblogs.com/ambition/archive/2011/07/30/2-sat.html
Codeforces Round #425 (Div. 2)
A:
别人的好代码:
https://vjudge.net/contest/172502#problem/F
这题应该就是离散化了吧
师兄的网络流的代码。注意他这里是怎么表示那个区间的,不用像我的那么复杂
int A[N],B[N],E[N],T[N],san[N];
int main(){int n,m;while(~sf("%d%d",&n,&m)){go.init();int cnt&#61;0;san[cnt&#43;&#43;]&#61;0;for(int i&#61;1;i<&#61;n;&#43;&#43;i){sf("%d%d%d%d",&A[i],&B[i],&E[i],&T[i]);san[cnt&#43;&#43;]&#61;A[i];san[cnt&#43;&#43;]&#61;E[i];}sort(san,san&#43;cnt);cnt&#61;unique(san,san&#43;cnt)-san;int s&#61;0,t&#61;n&#43;cnt;for(int i&#61;1;i1])*m);}int tot&#61;0;for(int i&#61;1;i<&#61;n;&#43;&#43;i){tot&#43;&#61;B[i]*T[i];go.add(s,i,B[i]*T[i]);int l&#61;lower_bound(san,san&#43;cnt,A[i])-san;int r&#61;lower_bound(san,san&#43;cnt,E[i])-san;for(int j&#61;l&#43;1;j<&#61;r;&#43;&#43;j){go.add(i,j&#43;n,B[i]*T[i]);}}if(tot&#61;&#61;go.gao(s,t))puts("Yes");else puts("No");}
}
https://vjudge.net/contest/172502#problem/G
这题要转化为二进制。。。。
https://vjudge.net/contest/172502#problem/I
这题用来让我更加熟悉最大流算法是怎么进行的。。。而且我终于不用看别人的代码做出题目了。。
https://vjudge.net/contest/172502#problem/J
这题我应该是想不出怎么就二分了&#xff0c;&#xff0c;
看了师兄的代码。。
收货&#xff1a;&#xff08;&#xff11;&#xff09;发现自己的居然还有一个漏洞&#xff0c;就是二分的时候的结果居然还要再判断。。
&#xff08;&#xff12;&#xff09;还有原来并查集可以这样用。。还是太少用了。这些数据结构就是个很随便的东西。。
K
if(!ok(l))l--;pf("%d\n",l);
https://vjudge.net/contest/173971#problem/K
按道理和上题差不多。。
但是我就想不出为什么拆开女生的点&#xff0c;而且我一对于题意不太懂。。现在想来&#xff0c;
如果&#xff4b;&#xff01;&#xff1d;&#xff11;的话就不可能选不喜欢的男生&#xff0c;&#xff0c;因为这样会让别的女生在没法选。。
所以这题目其实还是在于&#xff4b;&#xff1d;&#xff1d;&#xff11;的时候怎么弄。。
所以就是拆点啦。
http://blog.csdn.net/u013480600/article/details/38980793看这个的博客。。
不过&#xff34;&#xff2c;&#xff25;了几次。。
看来自己要会判断存边应该要存多少。。。
&#xff54;&#xff49;&#xff52;&#xff45;&#xff1a;
入门题&#xff1f;https://vjudge.net/problem/UVALive-3942
其实我可能连递推都想不到。。
不过看了这题后对于&#xff54;&#xff49;&#xff52;&#xff45;的理解应该比原来好了。