【模拟】HDU 5762 Teacher Bo

题目链接:

  http://acm.hdu.edu.cn/showproblem.php?pid=5762

题目大意

  给n个点,坐标范围0~m(n,m<=105),求是否存在2个点对满足哈夫曼距离相等。

题目思路:

  【模拟】

  乍一看n2绝对T了,但是细想之下发现,坐标范围只有105,那么哈夫曼距离最多就2x105种,所以当循环超出这个范围时肯定能找到解(抽屉原理)。

 1 //
 2 //by coolxxx
 3 //
 4 #include<iostream>
 5 #include<algorithm>
 6 #include<string>
 7 #include<iomanip>
 8 #include<memory.h>
 9 #include<time.h>
10 #include<stdio.h>
11 #include<stdlib.h>
12 #include<string.h>
13 //#include<stdbool.h>
14 #include<math.h>
15 #define min(a,b) ((a)<(b)?(a):(b))
16 #define max(a,b) ((a)>(b)?(a):(b))
17 #define abs(a) ((a)>0?(a):(-(a)))
18 #define lowbit(a) (a&(-a))
19 #define sqr(a) ((a)*(a))
20 #define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))
21 #define eps (1e-8)
22 #define J 10000000
23 #define MAX 0x7f7f7f7f
24 #define PI 3.1415926535897
25 #define N 100004
26 using namespace std;
27 typedef long long LL;
28 int cas,cass;
29 int n,m,lll,ans;
30 struct xxx
31 {
32     int x,y;
33 }a[N];
34 bool u[N<<1];
35 void work()
36 {
37     int i,j,x;
38     for(i=1;i<=n;i++)
39     {
40         for(j=i+1;j<=n;j++)
41         {
42             x=abs(a[i].x-a[j].x)+abs(a[i].y-a[j].y);
43             if(u[x])
44             {
45                 puts("YES");
46                 return;
47             }
48             u[x]=1;
49         }
50     }
51     puts("NO");
52 }
53 int main()
54 {
55     #ifndef ONLINE_JUDGE
56 //    freopen("1.txt","r",stdin);
57 //    freopen("2.txt","w",stdout);
58     #endif
59     int i,j,x;
60     for(scanf("%d",&cas);cas;cas--)
61 //    for(scanf("%d",&cas),cass=1;cass<=cas;cass++)
62 //    while(~scanf("%s",s))
63 //    while(~scanf("%d",&n))
64     {
65         memset(u,0,sizeof(u));
66         scanf("%d%d",&n,&m);
67         for(i=1;i<=n;i++)
68             scanf("%d%d",&a[i].x,&a[i].y);
69         work();
70     }
71     return 0;
72 }
73 /*
74 //
75
76 //
77 */

时间: 2024-10-13 21:59:36

【模拟】HDU 5762 Teacher Bo的相关文章

hdu 5762 Teacher Bo 曼哈顿路径

Teacher Bo Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1014    Accepted Submission(s): 561 Problem Description Teacher BoBo is a geography teacher in the school.One day in his class,he mar

HDU 5762 Teacher Bo (鸽笼原理) 2016杭电多校联合第三场

题目:传送门. 题意:平面上有n个点,问是否存在四个点 (A,B,C,D)(A<B,C<D,A≠CorB≠D)使得AB的横纵坐标差的绝对值的和等于CD的横纵坐标差的绝对值的和,n<10^5,点的坐标值m<10^5. 题解:表面上这道题复杂度是O(n^2)会超时的,而实际上这些坐标差绝对值的和最大是2*10^5,所以复杂度不是O(n^2),而是O(min(n^2,m)),这就是著名的鸽笼原理. #include <iostream> #include <cstdio

模拟 --- hdu 12878 : Fun With Fractions

Fun With Fractions Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 152, Accepted users: 32 Problem 12878 : No special judgement Problem description A rational number can be represented as the ratio of two integ

hdu 5758 Explorer Bo(树形dp)

题目链接:hdu 5758 Explorer Bo 题意: 给一棵n个点的树,每次任选两个点,然后覆盖两点间的所有边,要求以最少的次数覆盖所有的边,在保证次数最少的情况下要求覆盖边的总次数最小 题解: 详细题解传送门 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=(a);i<=(b);++i) 3 using namespace std; 4 5 const int N=1e5+7; 6 int t,n,x,y,sz[N],

hdu 5761 Rowe Bo 微分方程

1010 Rower Bo 首先这个题微分方程强解显然是可以的,但是可以发现如果设参比较巧妙就能得到很方便的做法. 先分解v_1v?1??, 设船到原点的距离是rr,容易列出方程 \frac{ dr}{ dt}=v_2\cos \theta-v_1?dt??dr??=v?2??cosθ−v?1?? \frac{ dx}{ dt}=v_2-v_1\cos \theta?dt??dx??=v?2??−v?1??cosθ 上下界都是清晰的,定积分一下: 0-a=v_2\int_0^T\cos\thet

【模拟】HDU 5752 Sqrt Bo

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5752 题目大意: 定义f(n)=⌊√n⌋,fy(n)=f(fy-1(n)),求y使得fy(n)=1.如果y>5输出TAT.(n<10100) 题目思路: [模拟] 5层迭代是232,所以特判一下层数是5的,其余开根号做.注意数据有0. 队友写的. 1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h&g

HDU 5752 Sqrt Bo【枚举,大水题】

Sqrt Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 2221    Accepted Submission(s): 882 Problem Description Let's define the function f(n)=⌊n−−√⌋. Bo wanted to know the minimum number y wh

模拟/hdu 1008 Elevator

题意 开始电梯在0层 给出n个指令,每个代表下一步停到哪层 每往上一层需要6秒,往下一层需要4秒,停止需要5秒 求总时间 分析 数据很小,模拟即可喵- Accepted Code 1 /* 2 PROBLEM:hdu1007 3 AUTHER:Nicole Lam 4 MEMO:模拟 5 */ 6 7 8 #include<cstdio> 9 using namespace std; 10 11 int main() 12 { 13 int n; 14 scanf("%d"

【数学】HDU 5753 Permutation Bo

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5753 题目大意: 两个序列h和c,h为1~n的乱序.h[0]=h[n+1]=0,[A]表示A为真则为1,假为0. 函数f(h)=(i=1~n)∑ci[hi>hi−1 && hi>hi+1] 现在给定c的值,求f(h)的期望. 题目思路: [数学] 头尾的概率为1/2,中间的概率为1/3,直接求和. 1 // 2 //by coolxxx 3 // 4 #include<io