fjwc2019 D4T1 循环流

#187. 「2019冬令营提高组」循环流

假的网络流,其实是O(1)算法

手画n个图后,你会发现只要分成几种情况讨论讨论就得了。

当$a==1$时显然不存在。

当$a!=1$时

如果$n==2$,显然$a$必须为偶数:$a==0$时,$b$必须为偶数;否则需要$a+b>=2$。

$n>2$时,特判一下$(b==n||a==n)$的成环情况

剩下的$a+b>n$即为合法。

总之画画图找找规律.................

(调试没删直接GG)

#include<iostream>
#include<cstdio>
using namespace std;
int Q,T,n,a,b,now;
int main(){
    freopen("flow.in","r",stdin);
    freopen("flow.out","w",stdout);
    scanf("%d%d",&Q,&T);
    while(T--){
        scanf("%d%d%d",&n,&a,&b); now=0;
        if(a!=1){
            if(n<=2){
                if(a==0&&b%2) ;
                else if(a%2==0) now=(a+b>=2);
            }else now=(a+b>n||a==n||b==n);
        }printf("%d
",now);
    }return 0;
}
原文地址:https://www.cnblogs.com/kafuuchino/p/10473536.html