Codeforces Round 974 (Div. 3) A-F

封面原图 画师礼島れいあ
下午的ICPC网络赛的难受一晚上全都给我打没了 手速拉满再加上秒杀线段树 这场简直了啊 唯一可惜的是最后还是掉出了1000名 一把上蓝应该没啥希望了吧

A - Robin Helps

题意

侠盗罗宾因劫富济贫而闻名于世
罗宾遇到的 n n n 人,从 1 s t 1_{st} 1st 开始,到 n t h n_{th} nth结束。 i i i 第三个人有 a i a_i ai 金子。如果是 a i ≥ k a_i \ge k aik ,罗宾会拿走所有的 a i a_i ai 金子;如果是 a i = 0 a_i=0 ai=0 ,罗宾会给 1 1 1 金子(如果他还有的话)。罗宾开始时有 0 0 0 个金币
求罗宾给了多少人黄金子、

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;void solve()
{int n,k;scanf("%d%d",&n,&k);int now=0;int cnt=0;for(int i=0;i<n;i++){int x;scanf("%d",&x);if(x>=k)now+=x;if(now>0 and x==0){cnt++;now--;}}printf("%d\n",cnt);
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}

B - Robin Hood and the Major Oak

题意

大橡树每年长出 i i i^i ii 片新叶,它在 1 1 1 年开始长出 1 1 1 片叶子
树叶在树上的寿命为 k k k 年,换句话说, i i i 年长出的叶子会在 i i i 年和 i + k − 1 i+k-1 i+k1 年之间存在
罗宾认为偶数是幸运数字,请帮助罗宾判断这棵橡树在 n n n 年的叶子数是否为偶数

思路

i i i^i ii的奇偶性一定和 i i i相同 所以直接根据l到r之间的奇数个数判断即可

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
ll qpow(ll a,ll b,ll mod)
{ll res=1;while(b){if(b&1) res=res*a%mod;a=a*a%mod;b>>=1;}return res;
}void solve()
{ll n,k;scanf("%lld%lld",&n,&k);ll l=n-k+1,r=n;int cnt=r/2-l/2;if(r%2==1)cnt++;if(cnt%2==0){printf("YES\n");}else{printf("NO\n");}
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}

C - Robin Hood in Town

题意

给一个数组中最大的数加上一个最小的x使得这个数组中严格大于一半的数都严格小于数组新的平均数的一半

思路

先找到这个平均数最小的值是多少 然后二分查找一个合适的k 分母记得乘过去 否则会有精度问题
二分记得开到1e18

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;void solve()
{ll n;scanf("%lld",&n);ll a[n];ll sum=0;for(int i=0;i<n;i++){scanf("%lld",&a[i]);sum+=a[i];}if(n<=2){printf("-1\n");return ;}sort(a,a+n);ll avg=a[n/2];ll l=0,r=1e18;while(l<r){ll mid=(l+r)/2;ll now=sum+mid;if(now>avg*2*n)r=mid;elsel=mid+1;}printf("%lld\n",l);
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}

D - Robert Hood and Mrs Hood

题意

给你k个区间,你要选取一个长度为d的区间,分别输出与这个区间相交区间最多和最少得情况的区间起点

思路

线段树维护每一个位置开始会覆盖到多少个区间,每次都是 l − d + 1 l-d+1 ld+1 r r r这个区间一起+1
线段树用的板子在这里

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
#define MAXN 1000001
using namespace std;
ll n,m,a[MAXN],ans[MAXN<<2],tag[MAXN<<2];
inline ll ls(ll x)
{return x<<1;
}
inline ll rs(ll x)
{return x<<1|1;
}
inline void push_up(ll p)
{ans[p]=ans[ls(p)]+ans[rs(p)];
}
void build(ll p,ll l,ll r)
{tag[p]=0;if(l==r){ans[p]=a[l];return ;}ll mid=(l+r)>>1;build(ls(p),l,mid);build(rs(p),mid+1,r);push_up(p);
}
inline void f(ll p,ll l,ll r,ll k)
{tag[p]=tag[p]+k;ans[p]=ans[p]+k*(r-l+1);
}
inline void push_down(ll p,ll l,ll r)
{ll mid=(l+r)>>1;f(ls(p),l,mid,tag[p]);f(rs(p),mid+1,r,tag[p]);tag[p]=0;
}
inline void update(ll nl,ll nr,ll l,ll r,ll p,ll k)
//nl,nr为要修改的区间,l,r为当前节点区间,p为当前节点编号,k为要加上的值
{if(nl<=l&&r<=nr){ans[p]+=k*(r-l+1);tag[p]+=k;return ;}push_down(p,l,r);ll mid=(l+r)>>1;if(nl<=mid)update(nl,nr,l,mid,ls(p),k);if(nr>mid) update(nl,nr,mid+1,r,rs(p),k);push_up(p);
}
ll query(ll q_x,ll q_y,ll l,ll r,ll p)
{ll res=0;if(q_x<=l&&r<=q_y)return ans[p];ll mid=(l+r)>>1;push_down(p,l,r);if(q_x<=mid)res+=query(q_x,q_y,l,mid,ls(p));if(q_y>mid) res+=query(q_x,q_y,mid+1,r,rs(p));return res;
}void solve()
{int n,d,k;scanf("%d%d%d",&n,&d,&k);build(1,1,n);while(k--){ll l,r;scanf("%lld%lld",&l,&r);update(max(1ll,l-d+1),r,1,n,1,1);//从l-d+1到r都要加1}//找值最小的位置和最大的位置ll minn=1,maxx=1;ll nowmin=query(1,1,1,n,1);ll nowmax=query(1,1,1,n,1);for(int i=1;i<=n-d+1;i++){ll now=query(i,i,1,n,1);if(now<nowmin){nowmin=now;minn=i;}if(now>nowmax){nowmax=now;maxx=i;}}printf("%lld %lld\n",maxx,minn);
}int main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}

E - Rendez-vous de Marian et Robin

题意

建了一个图,1和n点各有一个人相向而行,每条边花费的时间等于边权,但是有h个点有马,走到有马的点之后的每条边花费的时间都会变成边权的一半,问两人在任意位置相遇花费的最短时间

思路

dijkstra堆优化维护左端和右端到每个点的时间,有马和无马跑两次,然后遍历每个点算答案

代码

在这里插入图片描述

F - Sheriff’s Defense

题意

n-1条边的一个无向图,每次可以使与一个节点的所有节点权值全部减c来使这个节点的最终权值可以加入答案的计算,求最大的答案

思路

每一个点加固与否,一个很明显的dp,跑一遍就行了
记得开long long

代码

#include <bits/stdc++.h>
#define int long long
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
const int N=2e5+10,M=N*2;
int n,m;
int w[N],dp[N][2];
vector<int> G[N];void dfs(int u,int fa)
{dp[u][0]=0;dp[u][1]=w[u];for(auto v:G[u]){if(v==fa) continue;dfs(v,u);dp[u][0]+=max(dp[v][0],dp[v][1]);dp[u][1]+=max(dp[v][0],dp[v][1]-m*2);}
}void solve()
{scanf("%lld%lld",&n,&m);for(int i=1;i<=n;i++){scanf("%lld",&w[i]);G[i].clear();}for(int i=1;i<=n-1;i++){int u,v;scanf("%lld%lld",&u,&v);G[u].push_back(v);G[v].push_back(u);}dfs(1,-1);printf("%lld\n",max(dp[1][0],dp[1][1]));
}signed main()
{int T=1;scanf("%d",&T);while(T--){solve();}return 0;
}

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

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

相关文章

mysqldump使用cmd窗口和powersell窗口导出sql中文乱码的问题

项目场景 我在使用Mariadb数据库更新数据的时候&#xff0c;由于数据库的表格中含有中文&#xff0c;在使用mysqldump导出sql语句的时候&#xff0c;中文显示乱码&#xff0c;如下图所示&#xff1a; 环境描述 系统&#xff1a;windows10数据库&#xff1a; Mariadb -10.6.16…

linux安装Anaconda3

先将Anaconda3安装包下载好&#xff0c;然后在主文件夹里新建一个文件夹&#xff0c;将Anaconda3安装包拖进去。 打开终端未来不出现缺东西的异常情况&#xff0c;我们先安装 yum install -bzip2然后进入根目录下&#xff0c;在进入Anaconda3文件夹下 sh包安装方式 sh Anac…

动手学深度学习(李沐)PyTorch 第 2 章 预备知识

2.1 数据操作 N维数组样例 N维数组是机器学习和神经网络的主要数据结构 张量表示一个由数值组成的数组&#xff0c;这个数组可能有多个维度。 具有一个轴的张量对应数学上的向量&#xff08;vector&#xff09;&#xff1b; 具有两个轴的张量对应数学上的矩阵&#xff08;…

S-Clustr-Simple 飞机大战:骇入现实的建筑灯光游戏

项目地址:https://github.com/MartinxMax/S-Clustr/releases Video https://www.youtube.com/watch?vr3JIZY1olro 飞机大战 这是一个影子集群的游戏插件&#xff0c;可以将游戏画面映射到现实的设备&#xff0c;允许恶意控制来完成游戏。亦或者设备部署在某建筑物中,来控制…

2024年中国研究生数学建模竞赛A题“风电场有功功率优化分配”全析全解

问题一&#xff1a; 针对问题一&#xff0c;可以采用以下低复杂度模型&#xff0c;来计算风机主轴及塔架的疲劳损伤累积程度。 建模思路&#xff1a; 累积疲劳损伤计算&#xff1a; 根据Palmgren-Miner线性累积损伤理论&#xff0c;元件的疲劳损伤可以累积。因此&#xff0c;…

Android-UI设计

控件 控件是用户与应用交互的元素。常见的控件包括&#xff1a; 按钮 (Button)&#xff1a;用于执行动作。文本框 (EditText)&#xff1a;让用户输入文本。复选框 (CheckBox)&#xff1a;允许用户选择或取消选择某个选项。单选按钮 (RadioButton)&#xff1a;用于在多个选项中…

分享两道算法题

分享两道算法题 王者荣耀分组 题目描述 部门准备举办一场王者荣耀表演赛&#xff0c;有 10 名游戏爱好者参与&#xff0c;分 5 为两队&#xff0c;每队 5 人。 每位参与者都有一个评分&#xff0c;代表着他的游戏水平。 为了表演赛尽可能精彩&#xff0c;我们需要把 10 名参赛…

leetcode练习 二叉树的最大深度

给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3提示&#xff1a; 树中节点的数量在 [0, 104] 区间内。-100 …

RabbitMQ08_保证消息可靠性

保证消息可靠性 一、生产者可靠性1、生产者重连机制&#xff08;防止网络波动&#xff09;2、生产者确认机制Publisher Return 确认机制Publisher Confirm 确认机制 二、MQ 可靠性1、数据持久化交换机、队列持久化消息持久化 2、Lazy Queue 惰性队列 三、消费者可靠性1、消费者…

Springboot 文件上传下载相关问题

文章目录 关于Springboot 文件上传下载问题解决方案注意事项文件上传文件下载文件删除文件在线打开在写练习的时候&#xff0c;发现了一些小小的问题&#xff0c;已经在 上述代码中体现。① 代码路径碰到中文的时候&#xff0c;会有乱码&#xff0c;需要转换&#xff08;内容中…

华润电力最新校招社招润择认知能力测评:逻辑推理数字计算语言理解高分攻略

​ 尊敬的求职者们&#xff0c; 在您准备加入华润电力这个大家庭之前&#xff0c;了解其招聘测评的详细流程和要求是至关重要的。以下是我们为您整理的测评系统核心内容&#xff0c;希望对您的求职之旅有所帮助。 测评系统概览 华润电力的招聘测评系统旨在全面评估求职者的认…

【WEB】序列一下

1、 2、反序列化 <?phpclass Polar{public $url polarctf.com;public $ltsystem;public $bls /;function __destruct(){$a $this->lt;$a($this->b);} }$a new Polar(); echo serialize($a); ?>###O:5:"Polar":3:{s:3:"url";s:12:"…

CSS 布局三大样式简单学习

目录 1. css 浮动 1.1 效果1 1.2 效果2 1.3 效果3 1.4 效果4 2. css 定位 2.1 absolute 2.2 relative 2.3 fixed 3. css 盒子模型 3.1 效果1 3.2 效果2 3.3 效果3 3.4 效果4 1. css 浮动 1.1 效果1 1.2 效果2 1.3 效果3 1.4 效果4 2. css 定位 2.1 absolute 2.2 …

AI 时代的网络危机沟通计划

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

吉首大学--23级题目讲解

7-1 单链表基本操作 在 C/C 中&#xff0c;.&#xff08;点&#xff09;和 ->&#xff08;箭头&#xff09;运算符用于访问结构体或类的成员&#xff0c;但它们的使用场景不同。 1. . 运算符 . 运算符用于访问结构体或类的成员&#xff0c;通过对象或结构体变量直接访问。…

51单片机——独立按键

一、独立按键对应单片机P3管脚&#xff0c;如图 二、按键点亮LED灯 #include <STC89C5xRC.H> void main() { while(1) { if(P300) { P200; } else { P201; } } } 当按键为0时&#xff0c;代表按下&#xff0c;所以当P30按下时&#xff0c;让P20&#xff1d;0&#…

[产品管理-32]:NPDP新产品开发 - 30 - 文化、团队与领导力 - 领导力与团队的可持续发展

目录 一、团队领导的领导力 1.1 领导力 1、领导力的定义 2、领导力的重要性 3、领导力的构成要素 4、如何提升领导力 1.2 情商 二、虚拟团队 1、团队定义与特征 2、团队优势 3、团队挑战与应对策略 三、可持续发展 四、团队管理和领导力中的度量指标 4.1 激励创新…

XXL-JOB分片概念讲解

3. 分片功能讲解 3.1 案例需求&#xff1a; 1.我们现在实现这样的需求&#xff0c;在指定节假日&#xff0c;需要给平台的所有用户去发送祝福的短信 3.2.编码实现&#xff1a; a.初始化数据 1.在数据库中导入xxl_job_demo.sql数据 b.集成Druid&MyBatis 1.添加依赖 &…

[Python数据拟合与可视化]:使用线性、多项式、指数和高斯模型拟合数据

引言 在数据分析和机器学习领域&#xff0c;选择合适的模型对数据进行拟合是至关重要的。本文将通过一个实际的Python编程案例&#xff0c;比较线性、多项式、指数和高斯模型在数据拟合方面的性能。通过生成模拟数据&#xff0c;我们将使用这些模型进行拟合&#xff0c;并评估…

安捷伦Agilent/keysight 53220A参数资料 通用频率计 计数器

Agilent 53220A&#xff0c;Keysight 53220A&#xff0c;通用频率计数器/计时器&#xff0c;350 MHz&#xff0c;12 位&#xff0c;100 ps 53220A 350 MHz 通用频率计数器/计时器是一款双通道频率计数器&#xff0c;能够执行所需的全部频率和时间间隔测量。它可以添加可选的射…