国庆玩的有点嗨,开学了补题。

A轰炸平面镇魂曲

题目描述

虹村万泰是一位二维世界的替身使者,他的替身 "轰炸平面镇魂曲" 能产生一条直线分割整个平面。

一开始,平面上有一个矩形,其左下顶点坐标为 (a,b)(a,b),右上顶点坐标为 (c,d)(c,d),此矩形已把平面分成两个区域 (矩形内和矩形外)。

现在,虹村万泰对这个平面使用了两次 "轰炸平面",产生的直线分别是 x=0x=0 与 y=0y=0。

万泰想知道现在整个平面一共被分成了几个区域,你能帮帮他吗? (面积严格大于 00 才算是一个区域。)

输入描述

输入第一行包含一个整数 TT,表示输入的询问数量。

接下来 TT 行,每行四个整数,依次表示该组询问的 a,b,c,d意义如题面所示。

  • 1≤T≤10000

  • −109≤a,b,c,d≤109, a < ca<c,b < db<d

输出描述

依序对于每个询问都输出一行包含一个整数,表示该询问的区域的个数。

样例输入 1

3
1 2 3 4
-5 5 10 20
1 0 3 4

样例输出 1

5
6
5

样例解释 1

第一组样例的示意图

第二组样例的示意图

其中红线为x=0x=0的直线,绿线为y=0y=0的直线,蓝色的线为初始平面上的矩形。

解题思路:简单推理已知题意所示两条直线(其实就是数学中平面直角坐标系的x轴y轴)已经将所有区域划分为四个区域。

而题目中又要求a<c,b<d;所以不难想到每次询问中的矩形面积都严格大于0,然后就可以想象一下,一共是有三种情况的,①:

矩形与两条直线都不相交,则有(a*c>=0&&b*d>=0)也即是说所有坐标点都是同号的,②:矩形交于两条直线,此时根据矩形的特征结合直角坐标系来判断,不难知道(a,b)点在坐标系左下角,(c,d)点在坐标系右上角,a*c与b*d两两异号。③:矩形只与一条直线相交且保证不是底边或顶边与直线重合(重合的情况为a*c==0或b*d==0归于第一类情况了),这里的情况比较多,一个个想可能比较复杂,但这是最后一种情况了,可以取个巧,有兴趣的可以自己推理一下。注意一下数据范围。代码如下:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
#define inf 1e9
#define rep(i,j,k) for(int i = (j); i <= (k); i++)
#define rep__(i,j,k) for(int i = (j); i < (k); i++)
#define per(i,j,k) for(int i = (j); i >= (k); i--)
#define per__(i,j,k) for(int i = (j); i > (k); i--)
const int N=1e5+10;
int t;
LL a,b,c,d;
int main()
{
scanf("%d",&t);
rep(i,1,t){
scanf("%lld%lld%lld%lld",&a,&b,&c,&d);
if(a*c>=0&&b*d>=0)printf("5\n");
else if(a*c<0&&b*d<0)printf("8\n");
else printf("6\n");
}
return 0;
}

B 卖萌鸡尾酒

题目描述

众所周知,鸡尾酒的群名片叫作 "卖萌鸡尾酒",他认为一个群里的 「有缘人」是群名片与他相近的人。 现在,鸡尾酒想找出群里的 「有缘人」。

首先,他将自己名片拆分成五个字 ""、""、""、""、"",并分别作为关键字进行搜索,每次搜索都会找到所有群名片包含这个字的群友。如:搜索 "" 就能找到所有名片中包含 "" 的人。

如果某个人在至少两次搜索中都被搜索到,则鸡尾酒认为他是一位 「有缘人」。如 "[jwju]鸡尾酒的小迷弟" 以及 "尾酒" 是「有缘人」。 而 "王萌♂萌" 则不是。 现在告诉你鸡尾酒的五次搜索中每一次搜索到的人数,他想知道,群里最多有几位 「有缘人」。

输入描述

输入一行包含五个正整数 a,b,c,d,e分别代表五次搜索中被搜索到的人数。

1≤a,b,c,d,e≤109

输出描述

输出一行一个整数代表群里最多有几位「有缘人」。

样例输入 1

1 1 1 1 1

样例输出 1

2

样例解释 1

如果第一个「有缘人」包含前两个关键字,第二个「有缘人」包含后三个关键字,群里没有其他人的名片包含关键字。则每次搜索都只会有一个人被搜到,满足题意。且没有一种方案可以使得群里具有更多数量的「有缘人」且同时符合样例输入,所以群里最多有两位「有缘人」。

解题思路:这道题仔细想想还是挺有趣的。给定五次查询结果,让判断最多有多少位有缘人。咋一看是没有思路的,可以从查询结果着手,不管怎样,五次查询肯定会有一次查询人数是最多的,而当最多的这次查询比其他四次查询人数总和还多的情况下,最理想的结果莫过于另外四组查询中每个人都是有缘人;反之,则可以用所有查询的总人数除以2作为有缘人的最大结果(即使查询结果两两结合,又判断了不存在某组查询的人数比其他的总和还多,所以是成立的),注意数据范围。代码如下:

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
#define inf 1e9
#define rep(i,j,k) for(int i = (j); i <= (k); i++)
#define rep__(i,j,k) for(int i = (j); i < (k); i++)
#define per(i,j,k) for(int i = (j); i >= (k); i--)
#define per__(i,j,k) for(int i = (j); i > (k); i--)
const int N=1e5+10;
LL a[5],sum;
int main()
{
rep(i,0,5){
scanf("%lld",&a[i]);
sum+=a[i];
}
sort(a,a+5);
if(a[4]>sum-a[4])cout<<sum-a[4]<<endl;
else cout<<sum/2<<endl;
return 0;
}

Comet OJ-2019国庆欢乐赛的更多相关文章

  1. Comet OJ - 2019国庆欢乐赛 C题 两排房子

    ###题目链接### 题目大意:这里有横着的两排房子,给你每个房子的左端点和右端点.若两排房子中分别有两个房子 x y ,他们在横坐标上有重叠部分(端点重叠也算),则被称为 “对门” 关系. 问你总共 ...

  2. Comet OJ 2019 夏季欢乐赛题解

    Comet OJ 2019 夏季欢乐赛题解 我是来骗访问量的 A 完全k叉树 \(n\)个点的完全k叉树的直径. 直接做 B 距离产生美 直接做 C 烤面包片 \(n!!!\mod p\) 显然\(n ...

  3. Comet OJ - 2019 六一欢乐赛

    传送门 #A: 思路:等差数列求和,看成俩次1+2+…+ n,多加的n减去,所以 ans = n*(n+1) - n. AC代码: #include<iostream> #include& ...

  4. 【题解】Comet OJ 国庆欢乐赛 简要题解

    [题解]Comet OJ 国庆欢乐赛 简要题解 A 直接做 B 直接做,结论: \[ ans=\max([Max\ge \mathrm{sum}] Max,s[n]/2) \] C 考虑这样一个做法: ...

  5. Comet OJ 夏季欢乐赛 篮球校赛

    Comet OJ 夏季欢乐赛 篮球校赛 题目传送门 题目描述 JWJU注重培养学生的"唱,跳,rap,篮球"能力.于是每年JWJU都会举办篮球校赛,来给同学们一个切磋篮球技术的平台 ...

  6. Comet OJ 夏季欢乐赛 Gree的心房

    Comet OJ 夏季欢乐赛 Gree的心房 题目传送门 题目描述 据说每一个走进Gree哥哥心房的小姑娘都没有能够再走出来-- 我们将Gree哥哥的心房抽象成一个n \times mn×m的地图,初 ...

  7. Comet OJ 夏季欢乐赛 分配学号

    Comet OJ 夏季欢乐赛 H 分配学号 题目传送门 题目描述 今天,是JWJU给同学们分配学号的一天!为了让大家尽可能的得到自己想要的学号,鸡尾酒让大家先从 [1,10^{18}][1,1018] ...

  8. Comet OJ - Contest #11 题解&赛后总结

    Solution of Comet OJ - Contest #11 A.eon -Problem designed by Starria- 在模 10 意义下,答案变为最大数的最低位(即原数数位的最 ...

  9. contesthunter CH Round #64 - MFOI杯水题欢乐赛day1 solve

    http://www.contesthunter.org/contest/CH Round %2364 - MFOI杯水题欢乐赛 day1/Solve Solve CH Round #64 - MFO ...

随机推荐

  1. 【C#】学习笔记(1) Delegates,Events,Lambda Expressions

    C#是跟着杨老师的教程走的,在这里感谢一下老师的无私奉献,他的cnblog地址:>cgzl,他的B站地址:>solenovex. 进入正题: Delegate表示委托,委托是一种数据结构, ...

  2. C++ message queue 消息队列入门

    说明:当我们有多个线程以不同的速度运行并且我们想要以特定的顺序从一个线程向另一个线程发送信息时,消息队列可能会有用. 这个想法是,发送线程将消息推送到队列中,而接收线程将消息按自己的步调弹出. 只要发 ...

  3. arcgis api for javascript 学习(六) 地图打印

    1.本文应用arcgis api for javascript对发布的动态地图进行打印,打印的为PDF格式,打印出来如图: 2.需要特别注意的是:我们在运行代码前,需要打开PrintingTools, ...

  4. bacula备份工具

    源码下载:http://www.bacula.org bacula适合数据业务量巨大,每天都在迅速增长,还需要以tar打包方式进行低级备份而且没有异地容灾策略.Bacula是一个完美的增量备份功能,同 ...

  5. 使用android日志工具

    Log的级别? 日志级别按照高低排序为:ERROR,WARN,INFO,DEBUG,VERBOSE, 日志输出: Log.e()输出ERROR级别的日志信息 Log.w()输出WARN,ERROR级别 ...

  6. HttpClient的使用今天遇到一个巨坑——HttpEntity内容取不出来

    在使用HttpPost httpPost = new HttpPost(postUrl);的post请求后,拿到返回的response,response返回200成功. 到此没有任何问题. respo ...

  7. Android刷机

    1.安装第三方recovery 下载自己手机适配的recovery包 https://twrp.me/lg/lgnexus5.html fastboot 卡在 waiting for device $ ...

  8. Python股票历史数据的获取

    获取股票数据的接口很多,免费的接口有新浪.网易.雅虎的API接口,收费的就是证券公司及相应的公司提供的接口.收费试用的接口一般提供的数据只是最近一年或三年的,限制比较多,除非money足够多.所以本文 ...

  9. 关于使用LocalDateTime进行存储,时间相差比较多的问题。

    可以在设置数据库中的连接, characterEncoding=UTF8&useSSL=false&serverTimezone=GMT%2b8

  10. Python常见异常及常用单词翻译

    Python常见异常及常用单词意思 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常:基本上是无法打开文件 ImportE ...