zoukankan      html  css  js  c++  java
  • #模拟#洛谷 5957 [POI2017]Flappy Bird

    题目


    分析

    小鸟所在坐标的奇偶性一定相同,
    考虑每次维护一个可行区间表示小鸟在当前列可以进入的纵坐标区间,
    那么它有(x_i-x_{i-1})的纵坐标最大改变差,然后根据奇偶性以及限制区间缩小范围,
    当遇到区间不存在的情况即为无解,最小点击次数即是横坐标与最小纵坐标的平均数


    代码

    #include <cstdio>
    #include <cctype>
    #define rr register
    using namespace std;
    int n,last,l,r,now,x,t,A,B;
    inline signed iut(){
    	rr int ans=0,f=1; rr char c=getchar();
    	while (!isdigit(c)) f=(c=='-')?-f:f,c=getchar();
    	while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
    	return ans*f;
    }
    signed main(){
    	n=iut(),iut();
    	for (rr int i=1;i<=n;++i,last=x){
    		x=iut(),t=x-last,A=iut(),B=iut();
    		if ((now=(A+1-l+t))>0) l=A+1+(now&1);
    		    else l-=t;
    		if ((now=(r+t-B+1))>0) r=B-1-(now&1);
    		    else r+=t;
    		if (l>r) return !printf("NIE");
    	}
    	return !printf("%d",(l+last)>>1);
    }
    
  • 相关阅读:
    MySQL之数据库优化
    cookie和session
    php自动加载
    php函数之strtr和str_replace的区别
    php函数之substr()
    阶段总结(一)
    json和xml
    sqlserver交换数据行中的指定列
    3 宏、条件编译
    5 常量与变量
  • 原文地址:https://www.cnblogs.com/Spare-No-Effort/p/14485482.html
Copyright © 2011-2022 走看看