Comet OJ-2019国庆欢乐赛
国庆玩的有点嗨,开学了补题。
题目描述
虹村万泰是一位二维世界的替身使者,他的替身 "轰炸平面镇魂曲" 能产生一条直线分割整个平面。
一开始,平面上有一个矩形,其左下顶点坐标为 (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;
}
题目描述
众所周知,鸡尾酒的群名片叫作 "卖萌鸡尾酒",他认为一个群里的 「有缘人」是群名片与他相近的人。 现在,鸡尾酒想找出群里的 「有缘人」。
首先,他将自己名片拆分成五个字 "卖"、"萌"、"鸡"、"尾"、"酒",并分别作为关键字进行搜索,每次搜索都会找到所有群名片包含这个字的群友。如:搜索 "萌" 就能找到所有名片中包含 "萌" 的人。
如果某个人在至少两次搜索中都被搜索到,则鸡尾酒认为他是一位 「有缘人」。如 "[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国庆欢乐赛的更多相关文章
- Comet OJ - 2019国庆欢乐赛 C题 两排房子
###题目链接### 题目大意:这里有横着的两排房子,给你每个房子的左端点和右端点.若两排房子中分别有两个房子 x y ,他们在横坐标上有重叠部分(端点重叠也算),则被称为 “对门” 关系. 问你总共 ...
- Comet OJ 2019 夏季欢乐赛题解
Comet OJ 2019 夏季欢乐赛题解 我是来骗访问量的 A 完全k叉树 \(n\)个点的完全k叉树的直径. 直接做 B 距离产生美 直接做 C 烤面包片 \(n!!!\mod p\) 显然\(n ...
- Comet OJ - 2019 六一欢乐赛
传送门 #A: 思路:等差数列求和,看成俩次1+2+…+ n,多加的n减去,所以 ans = n*(n+1) - n. AC代码: #include<iostream> #include& ...
- 【题解】Comet OJ 国庆欢乐赛 简要题解
[题解]Comet OJ 国庆欢乐赛 简要题解 A 直接做 B 直接做,结论: \[ ans=\max([Max\ge \mathrm{sum}] Max,s[n]/2) \] C 考虑这样一个做法: ...
- Comet OJ 夏季欢乐赛 篮球校赛
Comet OJ 夏季欢乐赛 篮球校赛 题目传送门 题目描述 JWJU注重培养学生的"唱,跳,rap,篮球"能力.于是每年JWJU都会举办篮球校赛,来给同学们一个切磋篮球技术的平台 ...
- Comet OJ 夏季欢乐赛 Gree的心房
Comet OJ 夏季欢乐赛 Gree的心房 题目传送门 题目描述 据说每一个走进Gree哥哥心房的小姑娘都没有能够再走出来-- 我们将Gree哥哥的心房抽象成一个n \times mn×m的地图,初 ...
- Comet OJ 夏季欢乐赛 分配学号
Comet OJ 夏季欢乐赛 H 分配学号 题目传送门 题目描述 今天,是JWJU给同学们分配学号的一天!为了让大家尽可能的得到自己想要的学号,鸡尾酒让大家先从 [1,10^{18}][1,1018] ...
- Comet OJ - Contest #11 题解&赛后总结
Solution of Comet OJ - Contest #11 A.eon -Problem designed by Starria- 在模 10 意义下,答案变为最大数的最低位(即原数数位的最 ...
- contesthunter CH Round #64 - MFOI杯水题欢乐赛day1 solve
http://www.contesthunter.org/contest/CH Round %2364 - MFOI杯水题欢乐赛 day1/Solve Solve CH Round #64 - MFO ...
随机推荐
- 关于Spring Boot你不得不知道的事--Spring Boot的基本操作
1 Pom文件 1.1 spring-boot-starter-parent 表示当前pom文件从spring-boot-starter-parent继承下来,在spring-boot-starter ...
- 深入浅出js实现继承的7种方式
给大家介绍7中js继承的方法 有些人认为JavaScript并不是真正的面向对象语言,在经典的面向对象语言中,您可能倾向于定义类对象,然后您可以简单地定义哪些类继承哪些类(参考C++ inherita ...
- SAP系统玩阴的?
SAP系统玩阴的? 近日和项目上的ABAP开发顾问一起弄一个自开发的报表.其中某个栏位的取值需要从批次主数据里抓取到供应商代码,然后根据供应商代码取到供应商名称等.为此笔者需要备功能说明书.在说明书里 ...
- 使用Dynamics 365 CE Web API查询数据加点料及选项集字段常用查询
微软动态CRM专家罗勇 ,回复336或者20190516可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me. 紧接上文:配置Postman通过OAuth 2 implicit ...
- Android 蓝牙开发(1)
普通蓝牙设备官方文档 Android 平台包含蓝牙网络堆栈支持,凭借此支持,设备能以无线方式与其他蓝牙设备交换数据.应用框架提供了通过 Android Bluetooth API 访问蓝牙功能的途径. ...
- PHP将数组转字符串
implode(',',$arr) //将数组转字符串 $arr = [ 'a'=>1, 'b'=>2, 'c'=>3, ]; $arr_string = implode(',',$ ...
- PHP代码篇(五)--如何将图片文件上传到另外一台服务上
说,我有一个需求,就是一个临时功能.由于工作开发问题,我们有一个B项目,需要有一个商品添加的功能,涉及到添加商品内容,比如商品名字,商品描述,商品库存,商品图片等.后台商品添加的接口已经写完了,但是问 ...
- MYSQL第一课
rm-rf /* 不能用 完全删除 数据库不能直接存储数据 table 表 DB 数据库 DBMS 数据库操作系统 SQL 结构化查询语言 语句不区分大小写,但字符串常量区区分大小写.建议命令大写. ...
- win10让屏幕壁纸动态变化某文件夹下的图片
首先,请大家在Win10系统中,点击桌面上的“开始菜单”,在开始菜单中,选择“设置”选项,进入Win10系统设置页面. 进入Win10系统设置页面以后,点击页面中的“个性化”选项,进入系统个性化页 ...
- Java学习笔记(4)--- 变量类型,修饰符
1.变量类型: a.定义: 和C++差不多,就是: type identifier [ = value][, identifier [= value] ...]: type为Java数据类型.iden ...