草庐IT

【AcWing】第61场周赛【2022.07.23】

HEY 2023-03-28 原文

竞赛链接

A.糖果

题目链接

链接

题目描述

给定三个正整数 a,b,c。

请计算 ⌊a+b+c2⌋,即 a,b,c 相加的和除以 2 再下取整的结果。

输入格式

第一行包含整数 T,表示共有 T 组测试数据。

每组数据占一行,包含三个正整数 a,b,c

输出格式

每组数据输出一行结果,表示答案。

数据范围

前三个测试点满足 1 ≤ T ≤ 10
所有测试点满足 1 ≤ T ≤ 1000,1 ≤ a,b,c ≤ 10^16

输入样例:

4
1 3 4
1 10 100
10000000000000000 10000000000000000 10000000000000000
23 34 45

输出样例:

4
55
15000000000000000
51

难度:简单

时/空限制:1s / 256MB

总通过数:1217
总尝试数:1677

来源:AcWing,第61场周赛

思路

模拟,水题

代码

点击查看代码
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>

using namespace std;

typedef long long ll;

void solve()
{
	ll a , b , c;
	cin >> a >> b >> c;
	
	cout << (a+b+c)/2 << endl;
}

int main()
{
	int T;
	cin >> T;
	
	while(T --)
		solve();
		
	return 0;
}

B.指针

题目链接

链接

题目描述

给定一个如下图所示的全圆量角器。

初始时,量角器上的指针指向刻度 0。

现在,请你对指针进行 n 次拨动操作,每次操作给定一个拨动角度 ai,由你将指针拨动 ai 度,每次的拨动方向(顺时针或逆时针)由你自由决定。

请你判断,能否通过合理选择每次拨动的方向,使得指针最终仍然指向刻度 0。

输入格式

第一行包含整数 n。

接下来 n 行,每行包含一个整数 ai,表示一次操作的拨动角度。

输出格式

如果可以做到指针最终仍然指向刻度 0,则输出 YES,否则输出 NO。

数据范围

前 4 个测试点满足 1 ≤ n ≤ 3
所有测试点满足 1 ≤ n ≤ 15,1 ≤ ai ≤ 180

输入样例1:

3
10
20
30

输出样例1:

YES

输入样例2:

3
10
10
10

输出样例2:

NO

输入样例3:

3
120
120
120

输出样例3:

``YES```

难度:中等

时/空限制:1s / 256MB

总通过数:960
总尝试数:2549

来源:AcWing,第61场周赛

思路

对于每一个a[i]来说都有两种选择,向左转,或者向右转,因此用dfs

代码

点击查看代码
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>

using namespace std;

const int N = 20;

int n;
int a[N];
bool flag = false;

void dfs(int u,int d)//u:次数,d:度数 
{
	if(d % 360 == 0 && u == n)
	{
		flag = true;
		return;
	}
	
	if(u == n)
		return;
	
	
	dfs(u+1,d+a[u]);
	dfs(u+1,d-a[u]);
}

int main()
{
	cin >> n;
	
	for(int i = 0;i < n;i ++)
		cin >> a[i];
	
	dfs(0,0);
	
	if(flag)
		cout << "YES" << endl;
	else
		cout << "NO" << endl;
	
	return 0;
}

C.画圆

题目链接

链接

题目描述

在一个二维平面内,给定一个以 (x1,y1) 为圆心,半径为 R 的圆以及一个坐标为 (x2,y2) 的点。

请你在二维平面上画一个圆,要求:

1. 平面中不存在点满足既在你画的圆上,又在给定的圆外。
2. 给定的点不能在你画的圆内(可以在圆上)。
3. 被给定圆覆盖且不被你画的圆覆盖的区域面积应尽可能小。

请输出你画的圆的圆心坐标以及半径。

输入格式

共一行,包含 5 个整数 R,x1,y1,x2,y2。

输出格式

三个实数 xans,yans,r,其中 (xans,yans) 是你画的圆的圆心坐标,r 是你画的圆的半径。

结果保留六位小数。

数据范围

所有测试点满足 1 ≤ R ≤ 10^5,|x1|,|y1|,|x2|,|y2| ≤ 10^5。

输入样例1:

5 3 3 1 1

输出样例1:

3.767767 3.767767 3.914214

输入样例2:

10 5 5 5 15

输出样例2:

5.000000 5.000000 10.000000

难度:困难

时/空限制 :1s / 256MB

总通过数:708
总尝试数:3450

来源:AcWing,第61场周赛

算法标签

计算几何

思路

根据第二个点的位置,可以分为两种情况
1.第二个点在圆外或圆上
那么最大的圆的位置就是已知圆本身

2.第二个点在圆内
在此情况上,又分为两种情况

  • 输入的第二个点与第一个点//重叠**,则最大圆如图所示
  • 输入的第二点与第一个点不重叠,则最大的圆如图所示

代码

点击查看代码
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>

using namespace std;

const double eps = 1e-8;

//浮点数有误差,因此采用cmp函数 
int cmp(double a,double b)
{
    if(fabs(a - b) < eps) return 0;//a == b

    if(a < b) return -1;//a < b

    return 1;// a > b
}

int main()
{
    double x1,y1,x2,y2,r;
    scanf("%lf%lf%lf%lf%lf", &r , &x1 , &y1 , &x2 , &y2 );

    //两点之间的距离 
    double dx = x1 - x2;
    double dy = y1 - y2;
    double d = sqrt(dx*dx + dy*dy);

    //所给的点在圆上或圆外,因此最大的圆就是他本身 
    if(cmp(d,r) >= 0)
        printf("%lf %lf %lf\n" , x1 , y1 , r);
    else
    {
        if(cmp(x1,x2) == 0 && cmp(y1,y2) == 0)//给的两个点重合 
            printf("%lf %lf %lf\n", x1 + r/2 , y1 , r/2);
        else
        {
            double r2 = ( r + d ) / 2;
            double x = x2 + (x1 - x2) / d * r2;
            double y = y2 + (y1 - y2) / d * r2;
            printf("%lf %lf %lf\n" , x , y , r2);
        }
    }

    return 0;
}

有关【AcWing】第61场周赛【2022.07.23】的更多相关文章

  1. 映宇宙2022年营收63亿元:同比下降三成,毛利率提升4.3个百分点 - 2

    3月26日,映宇宙(HK:03700,即“映客”)发布截至2022年12月31日的2022年度业绩财务报告。财报显示,映宇宙2022年的总营收为63.19亿元,较2021年同期的91.76亿元下降31.1%。2022年,映宇宙的经营亏损为4698.7万元,2021年同期则为净利润4.57亿元;期内亏损(净亏损)为1.68亿元,2021年同期的净利润为4.33亿元;非国际财务报告准则经调整净利润为3.88亿元,2021年同期为4.82亿元,同比下降19.6%。 映宇宙在财报中表示,收入减少主要是由于行业竞争加剧,该集团对旗下产品采取更为谨慎的运营策略以应对市场变化。不过,映宇宙的毛利率则有所提升

  2. IDEA 2022 创建 Spring Boot 项目详解 - 2

    如何用IDEA2022创建并初始化一个SpringBoot项目?目录如何用IDEA2022创建并初始化一个SpringBoot项目?0. 环境说明1.  创建SpringBoot项目 2.编写初始化代码0. 环境说明IDEA2022.3.1JDK1.8SpringBoot1.  创建SpringBoot项目        打开IDEA,选择NewProject创建项目。        填写项目名称、项目构建方式、jdk版本,按需要修改项目文件路径等信息。        选择springboot版本以及需要的包,此处只选择了springweb。        此处需特别注意,若你使用的是jdk1

  3. 2022年10月23日周赛ZZULIOJ - 2

    文章目录问题B:芝华士威士忌和他的小猫咪们代码&注释问题C:愿我的弹雨能熄灭你们的痛苦代码注释问题D:猜糖果游戏代码注释问题E:有趣的次方代码注释问题F:这是一个简单题代码&注释问题G:打印矩阵代码注释问题H:scz的简单考验代码注释问题I:完美区间代码&注释问题J:是狂热的小迷妹一枚吖~代码&注释2022年10月23日周赛ZZULIOJ问题B:芝华士威士忌和他的小猫咪们时间限制:1Sec内存限制:128MB题目描述芝华士威士忌很喜欢带着他的猫咪们一块跑着玩。但是小猫咪们很懒,只有在离他y米以内才愿意和他一块跑。这天他在坐标为x的位置,他想和他的猫咪们一块跑着玩。有n个小猫咪,第i个小猫咪在坐

  4. 【华为OD机试真题 java、python、c++】荒地电站建设【2022 Q4 100分】(100%通过+复盘思路) - 2

    代码请进行一定修改后使用,本代码保证100%通过率,本题目提供了java、python、c++三种代码。复盘思路在文章的最后题目描述祖国西北部有一片大片荒地,其中零星的分布着一些湖泊,保护区,矿区;整体上常年光照良好,但是也有一些地区光照不太好。某电力公司希望在这里建设多个光伏电站,生产清洁能源对每平方公里的土地进行了发电评估,其中不能建设的区域发电量为0kw,可以发电的区域根据光照,地形等给出了每平方公里年发电量x千瓦。我们希望能够找到其中集中的矩形区域建设电站,能够获得良好的收益。输入描述第一行输入为调研的地区长,宽,以及准备建设的电站【长宽相等,为正方形】的边长最低要求的发电量之后每行为

  5. 玩客云刷机(2022-3-19亲测) - 2

    https://cloud.189.cn/t/BJbYreYbmUj2(访问码:djz6)(网盘2022-4-1更新)一、刷入armbian。1.1使用AmlBurnTool软件烧录首选底包至固件。烧录完成后断开玩客云电源备用。(靠近hdmi的那个口子。)1.2使用WIn32diskimager软件将emmc固件写入U盘。1.3写入成功后,先将U盘插入玩客云靠近网线接口端的USB口,再接入电源。玩客云通电后指示灯会先亮绿灯,再亮蓝灯,红蓝闪烁,最后蓝灯常亮。等到确定蓝灯常亮后,再拔掉U盘、电源。(最好蓝灯常亮后,启动一次玩客云,看看ssh是否正常。)1.4使用WIn32diskimager写入

  6. 【微服务笔记23】使用Spring Cloud微服务组件从0到1搭建一个微服务工程 - 2

    这篇文章,主要介绍如何使用SpringCloud微服务组件从0到1搭建一个微服务工程。目录一、从0到1搭建微服务工程1.1、基础环境说明(1)使用组件(2)微服务依赖1.2、搭建注册中心(1)引入依赖(2)配置文件(3)启动类1.3、搭建配置中心(1)引入依赖(2)配置文件(3)启动类1.4、搭建API网关(1)引入依赖(2)配置文件(3)启动类1.5、搭建服务提供者(1)引入依赖(2)配置文件(3)启动类1.6、搭建服务消费者(1)引入依赖(2)配置文件(3)启动类1.7、运行测试一、从0到1搭建微服务工程1.1、基础环境说明(1)使用组件这里主要是使用的SpringCloudNetflix

  7. ruby - 为什么 "23 Dogs"在 pry 中被解析为 2015 年 11 月 23 日,但 "3 Dogs"给出解析器错误? - 2

    我在Twitter上找到了以下代码片段(查看帖子历史以获取来源)。[5]pry(main)>Date.parse('3Dogs')ArgumentError:invaliddate[6]pry(main)>Date.parse('23Dogs')=>Mon,23Nov2015这只是一个偷偷摸摸的彩蛋吗?如果是这样,为什么这个特定的日期和结果?如果不是彩蛋,为什么23Dogs解析为日期,但3Dogs不解析? 最佳答案 这与Pry无关。如果您检查Date::parse的文档你会看到,“如果可选的第二个参数[comp]为真[默认值]并且检

  8. AiBote 2022 新研发的自动化框架,支持 Android 和 Windows 系统。速度非常快 - 2

    Ai-Bot基于流行的Node.js和JavaScript语言的一款新自动化框架,支持Windows和Android自动化。1、Windowsxpath元素定位算法支持支持Windows应用、.NET、WPF、Qt、Java和Electron客户端程序和ie、edgechrome浏览器2、Android支持原生APP和H5界面,元素定位速度是appium十倍,无线远程自动化操作多台安卓设备3、基于opencv图色算法,支持找图和多点找色,1080*2340全分辨率找图50MS以内4、内置免费OCR人工智能技术,无限制获取图片文字和找字功能。5、框架协议开源,除官方node.jsSDK外,用户可

  9. 考勤刷卡 最大和 简单 蓝桥杯省赛 2022 - 2

    问题描述小蓝负责一个公司的考勤系统,他每天都需要根据员工刷卡的情况来确定每个员工是否到岗。当员工刷卡时,会在后台留下一条记录,包括刷卡的时间和员工编号,只要在一天中员工刷过一次卡,就认为他到岗了。现在小蓝导出了一天中所有员工的刷卡记录,请将所有到岗员工的员工编号列出。输入格式输入的第一行包含一个正整数n,表示一天中所有员工的刷卡记录的条数。接下来n行,每行包含一条刷卡记录,每条刷卡记录的格式为:HH:MM:SSID其中HH:MM:SS表示刷卡时间,HH为一个0到23之间的两位十进制整数(可能含前导0)表示时,MM为一个0到59之间的两位十进制整数(可能含前导0)表示分,SS为一个0到59之间的

  10. 2022年山东省职业院校技能大赛高职组“信息安全管理与评估”赛项竞赛规程 - 2

    2022年山东省职业院校技能大赛高职组“信息安全管理与评估”赛项竞赛规程一、赛项名称赛项名称:信息安全管理与评估英文名称:InformationSecurityManagementandEvaluation赛项组别:高职组赛项归属:电子与信息大类二、竞赛目的(一)引领教学改革通过大赛引领专业教学改革,实现以赛促教、以赛促学、以赛促改的产教结合格局,提升专业培养服务社会和行业发展的能力,为国家信息安全行业培养选拔技术技能型人才。2022年信息安全管理与评估赛项延续历届赛项的竞赛内容,通过赛项检验参赛选手安全网络组建、按照等保要求加固网络系统、安全架构、渗透测试、攻防实战等技术能力,检验参赛队计划

随机推荐