赛码"BestCoder"杯中国大学生程序设计冠军赛1001——Movie

Problem Description

Cloud and Miceren like watching movies.

Today, they want to choose some wonderful scenes from a movie. A movie has N scenes can be chosen, and each scene is associate with an interval [L, R]. L is the beginning time of the scene and R is the ending time. However, they can‘t choose two scenes which have overlapping intervals. (For example, scene with [1, 2] and scene with [2, 3], scene with [2, 5] and scene with[3, 4]).

Now, can you tell them if they can choose such three scenes that any pair of them do not overlap?

Since there are so many scenes that you can‘t get them in time, we will give you seven parameters N, L1, R1, a, b, c, d, and you can generate L1 ~ LN, R1 ~ RN by these parameters.

Input

The first line contains a single integer T, indicating the number of test cases.

Each test case contains seven integers N, L1, R1, a, b, c, d, meaning that there are N scenes. The i-th scene‘s interval is [Li, Ri]. L1 and R1 have been stated in input, and Li = (Li−1 ∗ a + b) mod 4294967296, Ri = (Ri−1 ∗ c + d) mod 4294967296.

After all the intervals are generated, swap the i-th interval‘s Li and Ri if Li > Ri.

T is about 100.

1 ≤ N ≤ 10000000.

1 ≤ L1,R1 ≤ 2000000000.

1 ≤ a,b,c,d ≤ 1000000000.

The ratio of test cases with N > 100 is less than 5%.

Output

For each test, print one line.

If they can choose such three scenes, output "YES", otherwise output "NO".

Sample Input

2
3 1 4 1 1 1 1
3 1 4 4 1 4 1

Sample Output

NO
YES大意:大水。。问是否存在三个区间满足不重叠
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAX = 10000000+10;
const int inf = 0x3f3f3f3f;
struct edge{
    unsigned int l,r;
}t[MAX];
int main()
{
    int T,n;
    unsigned int a, b, c, d;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d%d%d%d%d%d",&n,&t[1].l,&t[1].r,&a,&b,&c,&d);
        for(int i = 2; i <= n ; i++){
            t[i].l = t[i-1].l*a + b;
            t[i].r = t[i-1].r*c + d;
        }
        for(int i = 1; i <= n ;i++){
            if(t[i].l > t[i].r)
                swap(t[i].l,t[i].r);
        }
        unsigned int min1 = 4294967295UL,max1 = 0;
        for(int i = 1; i <= n ; i++){
            if(t[i].r < min1)
                min1 = t[i].r;
            if(t[i].l > max1)
                max1 = t[i].l;
        }
        if(min1 > max1){
            printf("NO\n");
            continue;
        }
        int flag = 0;
        for(int i = 1; i <= n ; i++){
            if(t[i].l > min1 && t[i].r < max1){
                printf("YES\n");
                flag = 1;
                continue;
            }
        }
        if(!flag)
            printf("NO\n");
    }
return 0;
}

  

				
时间: 2024-10-12 02:11:27

赛码"BestCoder"杯中国大学生程序设计冠军赛1001——Movie的相关文章

ACM 五一杭电赛码&quot;BestCoder&quot;杯中国大学生程序设计冠军赛小记

对于这项曾经热爱的竞赛,不得不说这是我最后一年参加ACM比赛了,所以要珍惜每一次比赛的机会. 五一去杭电参加了赛码"BestCoder"杯中国大学生程序设计冠军赛,去的队伍包括了今年19支World final的队伍,几乎是全国最强的46所学校各出了一个代表队,十分感谢学校给了我这个大三的老年血手这次去比赛的机会. 比赛在5.2一天内完成,上午的热身赛居然是上一场Bestcoder的原题= =.虽然我们三个人都没做过...不过我还是水水的写了前两道题. 在中午的悲惨淋雨后,下午正赛开始

(赛码&quot;BestCoder&quot;杯中国大学生程序设计冠军赛)GCD

GCD Accepts: 433 Submissions: 1753 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Problem Description In mathematics, the greatest common divisor (gcd) of two or more integers, when at least one of them is not zero

HDU 5214 Movie (赛码&quot;BestCoder&quot;杯中国大学生程序设计冠军赛A题)

五一有幸跟着老师去了一次杭电,求虐之行,坐等清华北大等巨巨AK全场,总结经验,激励前进! [题目链接]click here~~ [题目大意]在多个不确定区间里面,问能否选出三个互不相交的区间 [解题思路]  ps:当时是hjs敲题,敲完之后三个人都检查了一遍,发现没有问题,但是交上去却CE了,后面于是各种调,各种错误,最后发现把取模去掉,直接判断一下是否存在一个区间位于已经出来的区间中间且不交叉即可,悲剧... [官方解题报告]首先我们考虑如何选择最左边的一个区间,假设最左边的区间标号是i, 那

赛码&quot;BestCoder&quot;杯中国大学生程序设计冠军赛

渣渣一枚 总共做了4个题目.先总结下吧.题目质量很高. 题目链接 1001 这个题目第一眼就是hdu之前的题目今年暑假不AC.只选三个,那么就是左右两边贪心取优. #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #define MOD 4294967296 using namespace std; typedef unsigned int LL; int T; i

赛码&quot;BestCoder&quot;杯中国大学生程序设计冠军赛1009——邻接表+并查集——Exploration

Problem Description Miceren likes exploration and he found a huge labyrinth underground! This labyrinth has N caves and some tunnels connecting some pairs of caves. There are two types of tunnel, one type of them can be passed in only one direction a

&quot;BestCoder&quot;杯中国大学生程序设计冠军赛 HDU 5221 Occupation

题目链接~~> 做题感悟 :区域赛过后就没写过树剖 ,只记得思想,比赛时想到了,但是只打代码就打了半个多小时(真是醉了!!),然后就是不断的调试代码,悲催的是调了一个多小时也没调出来..... 解题思路:这题只要想到某个节点的子树的所有节点编号都大于此节点的编号(在线段树中)且是连续的,那么我们只要深搜的时候记录一下子树最大的一个节点的时间戳(在线段树中的编号),只要我们利用一个节点的进去的时间戳和出去的时间戳就可以对这个节点的子树操作了(CF上有一个处理子树类似的题),其它的两个操作就 so

第八届福建省大学生程序设计竞赛-重现赛

第八届福建省大学生程序设计竞赛-重现赛 B   计算几何 题意:问两个三角形是相交.包含还是相离. tags:套板子..求出相交的面积,再判断一下 /* 多边形相交面积模板 */ #define maxn 510 const double eps=1E-8; int sig(double d){ return(d>eps)-(d<-eps); } struct Point{ double x,y; Point(){} Point(double x,double y):x(x),y(y){} b

第39届ACM国际大学生程序设计竞赛 亚洲区域赛(现场赛)西安站

 第39届ACM国际大学生程序设计竞赛 亚洲区域赛(现场赛)西安赛区总结报告 报告人:田思明 队名:ACpioneer 队长:陈志阳,队员:顾振兴,田思明 西安区域赛告下帷幕,我和陈志阳,顾振兴组成的ACpioneer队最终获得了一块宝贵的铜牌.首先要感谢陈志阳和顾振兴两位杰出队友的努力训练和出色表现,我作为一个新人跟着他们学到了很多很多,也十分珍惜和他们在一起的训练,比赛时光,其次要感谢陈志老师,不辞辛劳陪我们5队和6队前往西安参加比赛,还要感谢集训队所有曾经帮过我们的所有队员们,记得cdy

2016年中国大学生程序设计竞赛(合肥)-重现赛1008 HDU 5968

异或密码 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 19    Accepted Submission(s): 9 Problem Description 晨晨在纸上写了一个长度为N的非负整数序列{ai }.对于这个序列的一个连续子序列{al,al+1,…,ar }晨晨可以求出其中所有数异或的结果 alxoral+1xor...xo