2013 南京邀请赛 K题 yet another end of the world
/**
大意:给定一组x[],y[],z[] 确定有没有两个不同的x[i], x[j] 看是否存在一个ID使得
y[i]<=ID%x[i]<=z[i]
y[j]<=ID%x[j]<=z[j]
设ID%x[i] = a ID%x[j] = b
===〉ID+x[i]*x=a, ID+x[j]*y = b;
两式相减得 x[j]*y - x[i]*x = b-a;
若是有解 就是(b-a)%gcd(x[i],x[j]) == 0
就是看b-a的范围内是否有数是 gcd(x[i],x[j]) 的倍数
因为 y[j]<=b<=z[j] y[i]<=a<=z[i]
所以 y[j]-z[i]<=b-a<=z[j]-y[i] 欠缺; 还是思路不够,,做题太少。。
**/ #include <iostream>
#include <algorithm>
using namespace std;
long long x[],y[],z[]; long long gcd(long long a,long long b){
if(b==)
return a;
return gcd(b,a%b);
} bool check2(int d,int l,int r){
if(l%d==||r%d==)
return true;
if((r-l+)>=d)
return true;
int t1 = l/d;
int t2 = r/d;
if(t1!=t2)
return true;
else
return false;
} bool check(int i,int j){
if(y[i]>z[j]||y[j]>z[i]){
if(z[j]<y[i])
swap(i,j);
long long d = gcd(x[i],x[j]);
if(check2(d,y[j]-z[i],z[j]-y[i]))
return true;
else
return false;
}else
return true;
} int main()
{
int n;
while(cin>>n){
for(int i=;i<n;i++)
cin>>x[i]>>y[i]>>z[i];
bool flag = false;
for(int i=;i<n;i++){
for(int j=i+;j<n;j++){
if(check(i,j)){
flag = true;
break;
}
}
}
if(!flag){
cout<<"Can Take off"<<endl;
}else{
cout<<"Cannot Take off"<<endl;
}
}
return ;
}
2013 南京邀请赛 K题 yet another end of the world的更多相关文章
- hdu 4587 2013南京邀请赛B题/ / 求割点后连通分量数变形。
题意:求一个无向图的,去掉两个不同的点后最多有几个连通分量. 思路:枚举每个点,假设去掉该点,然后对图求割点后连通分量数,更新最大的即可.算法相对简单,但是注意几个细节: 1:原图可能不连通. 2:有 ...
- 2013 ACM/ICPC南京邀请赛B题(求割点扩展)
题目链接:http://icpc.njust.edu.cn/Contest/194/Problem/B B - TWO NODES 时间限制: 10000 MS 内存限制: 65535 KB 问题描述 ...
- 2013 南京邀请赛 A play the dice 求概率
/** 大意:给定一个色子,有n个面,每一个面上有一个数字,在其中的m个面上有特殊的颜色,当掷出的色子出现这m个颜色之一时,可以再掷一次..求其最后的期望 思路:假设 期望为ans 4 ans = 1 ...
- 2013 南京邀请赛 C count the carries
/** 大意: 给定区间(a,b), 将其转化为二进制 计算从a+(a+1)+(a+2)....+(a+b-1),一共有多少次进位 思路: 将(a,b)区间内的数,转化为二进制后,看其每一位一共有多少 ...
- 2018宁夏邀请赛K题Vertex Covers(高维前缀和 状压 折半
https://vjudge.net/problem/Gym-102222K 题意:给定N点M边的无向图,每个点有点权. 点覆盖表示某个点集S{}覆盖了所有的边,其贡献是S中点权之积. 现在让你求所 ...
- 2013长沙网络赛H题Hypersphere (蛋疼的题目 神似邀请赛A题)
Hypersphere Time Limit: 1 Second Memory Limit: 32768 KB In the world of k-dimension, there's a ...
- HDU 4758 Walk Through Squares (2013南京网络赛1011题,AC自动机+DP)
Walk Through Squares Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Oth ...
- HDU 4751 Divide Groups (2013南京网络赛1004题,判断二分图)
Divide Groups Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- HDU 4750 Count The Pairs (2013南京网络赛1003题,并查集)
Count The Pairs Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others ...
随机推荐
- VIPS: a VIsion based Page Segmentation Algorithm
VIPS: a VIsion based Page Segmentation Algorithm VIPS: a VIsion based Page Segmentation Algorithm In ...
- php使用mysql扩展库链接mysql数据库(查询)
php链接数据库可以使用mysql扩展库,mysqli,pdo这几种方式,相比java而言要麻烦一点,因为它不像java那么统一.从代码的难易程度来说php的确要简单许多.步骤大体如下 1.打开数据库 ...
- getDeclaredConstructor()与getConstructor的差别
首先看getDeclaredConstructor(Class<?>... parameterTypes) 这种方法会返回制定參数类型的全部构造器,包含public的和非public的, ...
- Android应用开发基础篇(14)-----自定义标题栏
一.概述 每一个应用程序默认的标题栏(注意与状态栏的区别)只有一行文字(新建工程时的名字),而且颜色.大小等都是固定的,给人的感觉比较单调.但当程序需要美化的时候,那么修改标题栏是就是其中一项内容,虽 ...
- String、StringBuffer和StringBuild的区别
public class Test1 { public static void stringReplace (String text) { text = text.replace('j','i') ; ...
- 2015腾讯暑期实习生 Web前端开发 面试经历 --作者imwtr
1.现在有100亿个数字大小为1到10亿的数字,在这100亿个数字里边只有一个数字出现的次数是奇数次的,你用什么方法,找出这个数字呢? 答:显然至少要全部过一遍,可以用位运算,遍历数组,最后剩下的数字 ...
- js获取智能机浏览器版本信息
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> ...
- 简单的web三层架构系统【第五版】
接上一版,今天差不多就是三层架构后台代码的完结了,这一版写完,接下来就是前台的制作了,前台不太熟悉,还在深入学习.过一段时间在写,今天先把后台代码写完. 三层架构包括DAL层, BLL层, UI层(也 ...
- 10条影响CSS渲染速度的写法与建议
1.*{} #zishu *{} 尽量避开由于不同浏览器对HTML标签的解释有差异,所以最终的网页效果在不同的浏览器中可能是不一样的,为了消除这方面的风险,设计者通常会在CSS的一个始就把所有标签的默 ...
- 新建一个类并绑定一个activity
1.新建一个类(.java 文件),继承Android.app.Activity 2.新建一个activity 文件 3.重写onCreate 方法,设置绑定activity 文件 @Override ...