2017年07月29日

来源:互联网 发布:安知玉如意结局看不懂 编辑:程序博客网 时间:2024/05/13 14:20

学习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=0;        san[cnt++]=0;        for(int i=1;i<=n;++i){            sf("%d%d%d%d",&A[i],&B[i],&E[i],&T[i]);            san[cnt++]=A[i];            san[cnt++]=E[i];        }        sort(san,san+cnt);        cnt=unique(san,san+cnt)-san;        int s=0,t=n+cnt;        for(int i=1;i<cnt;++i){            go.add(n+i,t,(san[i]-san[i-1])*m);        }        int tot=0;        for(int i=1;i<=n;++i){            tot+=B[i]*T[i];            go.add(s,i,B[i]*T[i]);            int l=lower_bound(san,san+cnt,A[i])-san;            int r=lower_bound(san,san+cnt,E[i])-san;            for(int j=l+1;j<=r;++j){                go.add(i,j+n,B[i]*T[i]);            }        }        if(tot==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
这题我应该是想不出怎么就二分了,,
看了师兄的代码。。
收货:(1)发现自己的居然还有一个漏洞,就是二分的时候的结果居然还要再判断。。
(2)还有原来并查集可以这样用。。还是太少用了。这些数据结构就是个很随便的东西。。
K

        if(!ok(l))l--;        pf("%d\n",l);

https://vjudge.net/contest/173971#problem/K
按道理和上题差不多。。
但是我就想不出为什么拆开女生的点,而且我一对于题意不太懂。。现在想来,
如果k!=1的话就不可能选不喜欢的男生,,因为这样会让别的女生在没法选。。
所以这题目其实还是在于k==1的时候怎么弄。。
所以就是拆点啦。
http://blog.csdn.net/u013480600/article/details/38980793看这个的博客。。
不过TLE了几次。。
看来自己要会判断存边应该要存多少。。。

tire:
入门题?https://vjudge.net/problem/UVALive-3942
其实我可能连递推都想不到。。
不过看了这题后对于tire的理解应该比原来好了。


原创粉丝点击