CF1909题解

news/2024/12/27 1:15:23/文章来源:https://www.cnblogs.com/zcxnb/p/18530323

CF1909A

一眼秒之题,我们发现就是四个方向选三个方向,若是存在一个点它的方向恰好在(0,0)点的另外一个方向,则一定不成立

枚举4个方向,发现有点在这个方向,显然选除这个点之外的三个方向的方案就不可行

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=105;
int t,n;
int x[N],y[N];
bool c1(){for(int i=1;i<=n;i++){if(x[i]<0)  return 0;}return 1;
}
bool c2(){for(int i=1;i<=n;i++){if(x[i]>0)  return 0;}return 1;
}
bool c3(){for(int i=1;i<=n;i++){if(y[i]<0)  return 0;}return 1;
}
bool c4(){for(int i=1;i<=n;i++){if(y[i]>0)  return 0;}return 1;
}
int main(){scanf("%d",&t);while(t--){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d%d",&x[i],&y[i]);}if(c1()||c2()||c3()||c4())  printf("YES\n");else  printf("NO\n");}
}

CF1909B

看似普及-,实则封神

我们先想到若这些数有奇数也有偶数k直接等于2即可

然而若不是呢?

判断一个数的奇偶只需要看它的二进制最低位是0/1就行

若一个数列全是奇或偶那么必然二进制第一位上全是1或全是0

但是其必然会出现在二进制的某一位上1/0两种都存在

若一个数模上一个 \(2^k\) 那么在2进制下只有 1~k+1位上数是有效的

所以我们只需要找到在二进制表示的数列中,找到最低的一位满足这一位存在0/1即可

这显然可以字典树做,但这道题普及-所以我们暴力枚举 \(2^i\) 即可

点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=105,inf=1e18;
int t,n;
int a[N];
bool check(int mod){set<int>st;for(int i=1;i<=n;i++){int z=a[i]%mod;st.insert(z);}if(st.size()!=2)  return 0;return 1;
}
signed main(){scanf("%lld",&t);while(t--){int ans=inf;scanf("%lld",&n);for(int i=1;i<=n;i++){scanf("%lld",&a[i]);}for(int j=0;j<=63;j++){int mod=(1ll<<j);if(check(mod)){printf("%lld\n",mod);break;}}}
}

CF19909C

小恶心贪心题

显然我们是要求出来一个降序序列 \(r_i-l_i\) 使得其每一位乘上升序排序的 \(c_i\) 得出来的结果最小

考虑如何构造出对应的 \(l_i\)\(r_i\) 呢?

我们先将 \(l,r\) 序列排好序,然后考虑以下两种组合情况

所以我们只需要让在 \(l_i<r_i\) 这个限制范围内使得 \(l_i\) 尽量接近 \(r_i\),我们可以用栈来解决这个问题

点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int n,cnt,t;
int l[N],r[N],c[N],s[N],ans[N];
bool cmp(int x,int y){return x>y;
}
signed main(){scanf("%lld",&t);while(t--){cnt=0;scanf("%lld",&n);for(int i=1;i<=n;i++){scanf("%lld",&l[i]);}for(int i=1;i<=n;i++){scanf("%lld",&r[i]);}for(int i=1;i<=n;i++){scanf("%lld",&c[i]);}sort(c+1,c+1+n);sort(l+1,l+1+n);sort(r+1,r+1+n);for(int i=1,j=1;i<=n;i++){while(l[j]<r[i]&&j<=n){s[++cnt]=l[j];j++;}// printf("%lld %lld\n",r[i],s[cnt]);ans[i]=r[i]-s[cnt--];}sort(ans+1,ans+1+n,cmp);int tot=0;for(int i=1;i<=n;i++){tot+=ans[i]*c[i];}printf("%lld\n",tot);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/827695.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AUTOSAR解决方案 — INTEWORK-EAS-AP

经纬恒润自主研发的Adaptive AUTOSAR平台产品, 遵循AUTOSAR Adaptive R19-11和R22-11规范, 使用C++11、C++17语言开发。可通过极易上手的自研工具配置,实现AUTOSAR AP协议栈代码快速生成。 随着汽车智能化、网联化以及汽车电子电气架构发展,汽车功能需求越发复杂,越…

Js Bom定时器、事件循环

BOM:浏览器对象模型BOM为我们提供了一组对象,通过这组对象可以完成对浏览器的各种操作BOM对象:Window —— 代表浏览器窗口(全局对象) Navigator —— 浏览器的对象(可以用来识别浏览器) Location —— 浏览器的地址栏信息 History —— 浏览器的历史记录(控制浏览器前进…

一步一步在 Blazor 里使用 npm

Blazor 目前不支持 node 语法,所以无法直接使用 node 包;所以需要再用 js 封装一层。1,先给 npm 建个目录 “NpmJS” ,因为 node 无法直接当作 js 使用,所以这个目录不需要建在 wwwroot 下,反而方便 csproj 管理 2,创建 node 项目,建议直接用 npm init 命令创建, vs 自…

合宙低功耗4G模组HTTP网络协议应用

​一、HTTP概述 1.1 简介 HTTP是HyperTextTransferProtocol(超文本传输协议)的缩写。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说…

基于ESP32的桌面小屏幕实战[2]:硬件设计之充电管理

1. 硬件基础知识 1.1 原理图设计、PCB设计、PCB(电路板)、PCBA(电路板+元器件)分别长什么样?1.2 高低电平 一般可以理解为输出电压=VCC就是高电平,输出电压=GND(一般是0V)就是低电平,分别用1和0来表示,这个是理想值。 但实际上它也有一个范围,比如你的单片机供电压(…

jmeter 固定吞吐量定时器

使用:模拟18000 QPS查询 Hits Per SecondTPS :聚合报告: Target throughput(in samples per minute):目标吞吐量(单位分钟),即每分钟执行多少次(TPM)Calculate Throughput based on(计算吞吐量策略):1、This thread only:仅对当前线程,也就是每个线程相互是不干扰的,都…

VS引用本地的NuGet包

Step1.打包 先选择项目/类库,进行打包。在输出中,找到打包的目录和文件。 Step2.本地创建一个文件夹用于放打包文件。Step3.添加包源 打开 VS --> 工具 --> NuGet包管理器 --> 管理解决方案的NuGet程序包 选择右上方:程序包源右侧的齿轮按钮 在程序包源中,新增一…

cuda、cudnn、zlib 深度学习GPU必配三件套(Ubuntu)

跨大版本不推荐,到处是坑、坑、坑~。tensorrt10、cuda12、cudnn9是目前最新的大版本,但是对于一般的老显卡(1050等),太新可能提醒一些错误(主要是tensorrt太新导致的)。为了不折腾,使用如下版本:tensorrt8.6.1、cuda11.8、cudnn8.9.7 默认已经安装了英伟达显卡的最新版…

微信公众号音频下载器

微信公众号音频下载器我关注的一个大V,总是喜欢发布音频内容。 但是呢,由于众所周知的原因,这些内容往往被删除了,我就没法再听了。。。 于是,我想给他的音频保存下来。 虽然我可以自己搞定,但是毕竟没有现成的工具。于是,我发挥程序员的优势,自己动手写一个小工具。于…

北京-丰台-纪家庙

西域美食永照兰州拉面(❤❤❤)地址:丰台区南三环西路91号院1号楼1层107室 单人拉面套餐 ​ 招牌拉面 ​ 凉菜拼盘素 ​ 鸡蛋 ​ 价格:20R ​ 评价:拉面中规中矩,汤有点油,6分;凉菜爽口,不过也有点油,6分;煎蛋能吃出来不是剩的,7分;服务员主动给我提…

C++中调用C函数,会提示undefined reference to xxx,collect2: error: ld returned 1 exit status

在C++中调用C函数,即使头文件等都包含,编译后提示错误undefined reference to xxx,collect2: error: ld returned 1 exit status。这是因为C和C++编译过来中,函数的符号表示不一样。在c++中,为了支持重载机制,在编译生成的汇编码中,要对函数的名字进行一些处理,加入比如…

img 标签高度多了几个像素

因为img标签是行内标签自带间距,导致图片和div之间有间隙<div class="img-container"><img src="xxxxxxxxx" /> </div> <style lang=less> .img-container {width: 200px;font-size: 0; // 方法一img {display: block; // 方法二…