【CodeForces训练记录】Codeforces Round 1009 (Div. 3)

news/2025/3/12 1:17:47/文章来源:https://www.cnblogs.com/longxingx/p/18766578

训练情况

赛后反思

大翻车,C题打表直接开猜,D题想到了转化行贡献再线段覆盖,但是不会算时间复杂度没敢写,后来试了一发给过了

A题

显然四个点都在坐标轴上,构成正方形只有四个数相等的情况

点击查看代码
#include <bits/stdc++.h>
// #define int long long
#define endl '\n'using namespace std;void solve(){int a,b,c,d; cin>>a>>b>>c>>d;if(a == b && b == c && c == d) cout<<"Yes"<<endl;else cout<<"No"<<endl;
}signed main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int T; cin>>T; while(T--)solve();return 0;
}

B题

显然操作的先后顺序没什么关系,想要答案最大,根据三角形的两边和大于第三边,那我们选择第三边减一就可以满足了,选两个删掉插入两个的和减一,一直循环到只剩下一个就是答案

点击查看代码
#include <bits/stdc++.h>
#define int long long
#define endl '\n'using namespace std;void solve(){int n; cin>>n;vector<int> a(n + 1);for(int i = 1;i<=n;i++) cin>>a[i];if(n == 1){cout<<a[1]<<endl;return;}int ans = a[1] + a[2] - 1;for(int i = 3;i<=n;i++){ans = ans + a[i] - 1;}cout<<ans<<endl;
}signed main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int T; cin>>T; while(T--)solve();return 0;
}

C题

直接打表开猜,我们发现 \(y\) 是二的次方+1,直接枚举指数,判断一下 \(y\) 必须严格小于 \(x\),如果满足条件直接输出,全部不满足条件输出 \(-1\) 即可

点击查看代码
#include <bits/stdc++.h>
#define int long long
#define endl '\n'using namespace std;int a[5] = {3,5,9,17,33};void solve(){int x; cin>>x;for(int i = 0;i<34;i++){int y = (1ll<<i)+1ll;if(y>=x) break;int z = x^y;if(x+y>z&&y+z>x&&x+z>y){cout<<y<<endl;return;}}cout<<-1<<endl;
}signed main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int T; cin>>T; while(T--)solve();return 0;
}

D题

注意到这题半径的限制,我们可以考虑将答案转化为行贡献的和,我们直接枚举每个圆心对某一行的贡献,我们先不考虑重叠问题,答案全部加起来,之后再维护一个行的线段覆盖,将重复计算的行上的点去掉即可,代码实现比较复杂

点击查看代码
#include <bits/stdc++.h>
#define int long long
#define endl '\n'using namespace std;void solve(){int n,m; cin>>n>>m;vector<int> x(n + 1),r(n + 1);for(int i = 1;i<=n;i++) cin>>x[i];for(int i = 1;i<=n;i++) cin>>r[i];vector<pair<int,int>> v[m+1];int ans = 0;for(int i = 1;i<=n;i++){for(int j = 0;j<=r[i];j++){int dis = sqrt(r[i]*r[i] - j*j);// cout<<i<<" "<<j<<" "<<dis<<endl;v[j].emplace_back(x[i]-dis,x[i]+dis);ans += 2*(dis*2 + 1);}ans -= (r[i]*2 + 1);}for(int i = 0;i<=m;i++){if(!v[i].size()) continue;sort(v[i].begin(),v[i].end());int l = v[i][0].first,r = v[i][0].second;for(int j = 1;j<v[i].size();j++){int ll = v[i][j].first;int rr = v[i][j].second;// cout<<ll<<" "<<yy<<endl;if(i == 0){if(ll <= r && rr >= r) ans -= (r-ll+1),r = max(r,rr);else if(ll<=r && rr <= r) ans -= (rr-ll+1),r = max(r,rr);else l = ll,r = rr;} else {if(ll <= r && rr >= r) ans -= 2*(r-ll+1),r = max(r,rr);else if(ll<=r && rr <= r) ans -= 2*(rr-ll+1),r = max(r,rr);else l = ll,r = rr;}}}cout<<ans<<endl;
}signed main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int T; cin>>T; while(T--)solve();return 0;
}

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

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

相关文章

Cilium Ingress及插件的高级特性

作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 目录一.启用Cilium Ingress Controller1.Cilium Ingress Controller概述2.启用Cilium Ingress Controller3.部署metallb组件4.测试Ingress规则之dedicated模式5.测试Ingress规则之shared模式二.Cilium高级特性…

pycharm基础使用方法

https://blog.csdn.net/MikexunP/article/details/89414928 基本配置 我们安装好PyCharm后,首先要进行一些小配置,比如主题,字体,字体颜色等。 我们打开PyCharm后,点开file,找到Setting 然后就会跳出Setting的窗口 可以说PyCharm的各种配置都需要在这里配置,现在我们进入…

FastAPI 错误处理与自定义错误消息完全指南:构建健壮的 API 应用 ️

title: FastAPI 错误处理与自定义错误消息完全指南:构建健壮的 API 应用 🛠️ date: 2025/3/12 updated: 2025/3/12 author: cmdragon excerpt: 我们将涵盖常见的错误类型、如何捕获和处理这些错误、以及如何返回自定义的错误消息。通过实例和最佳实践,您将能够有效地应对…

基于Flask的Web应用开发

基于Flask的Web应用开发项目来源:[【基于Flask的Web应用开发-01.应用介绍及Flask安装_s】](【基于Flask的Web应用开发-01.应用介绍及Flask安装_s】 https://www.bilibili.com/video/BV1r94y1j7uW/?share_source=copy_web&vd_source=d0886da49a29063777f2956d5780b087) 原…

vitest遇到的一个小问题:scrollTo is not a function

给tdesign-mobile-vue提了一个pr,验收通过了但是单测流水线报错了看报错是组件里的错误,scrollTo is not a function 组件代码的大概逻辑如下 const navScroll = ref<HTMLElement>(); // ... if (navScroll.value) {const tab = navScroll.value.querySelector < HT…

《Python极客编程 : 用代码探索世界》 | PDF免费下载

16个有趣的编程项目,项目式的学习方法,有趣案例提升Python编程技能,培养解决现实问题的思维,附赠源代码,适合零基础计算机小白入门学习。点击下载书籍信息 作者: [美]李沃恩(Lee Vaughan) 出版社: 人民邮电出版社 副标题: 用代码探索世界 译者: 王海鹏 出版年: 2022-8-1…

密度大于0.9408

题目: from Crypto.Util.number import * import random from Crypto.Cipher import AES import hashlib from Crypto.Util.Padding import pad from secrets import flaglist = [] bag = [] p=random.getrandbits(64) assert len(bin(p)[2:])==64 for i in range(4):t = pa=[g…

背包密码密度的作用(LLL算法的实现)

背包问题通解: 当密度d满足以下条件时,LLL算法能有效地解决这类背包问题![](https://cdn.nlark.com/yuque/0/2025/png/49294098/1739349426771-401f2fa7-aefe-422b-b642-5d8f664c415d.png)其中:len(M)是向量M的长度,即向量中元素的数量 max(Mi)是向量M中的最大元素计算: import…

Elliptic(椭圆)曲线

题目: from Crypto.Util.number import getPrime from libnum import s2n from secret import flagp = getPrime(256) a = getPrime(256) b = getPrime(256) E = EllipticCurve(GF(p),[a,b]) m = E.random_point() G = E.random_point() k = getPrime(256) K = k * G r = getPr…

Twisted Hessian曲线(求a)

题目: from Crypto.Util.number import * from Crypto.Cipher import AES from Crypto.Util.Padding import pad from random import randint import hashlib from secrets import flagdef add_THCurve(P, Q):if P == (0, 0):return Qif Q == (0, 0):return Px1, y1 = Px2, y2 …

基于双PI控制器结构的六步逆变器供电无刷直流电机调速simulink仿真

1.课题概述基于双PI控制器结构的六步逆变器供电无刷直流电机调速simulink仿真。双PI控制器是一种结合了两个独立的PI控制器的控制策略,用于提高系统的稳定性和动态性能。2.系统仿真结果 (完整程序运行后无水印) 3.核心程序与模型 版本:MATLAB2022a 4.系统原理简介 4.1 无…

第十课 从人类反馈中引导强化学习

GPT-1GPT-2(至少要三个支持是因为网络上的垃圾信息很多,有了支持能够显著减少垃圾信息的量)GPT-2首次实现了零样本学习。零样本学习是指模型在从未接触过特定任务的训练数据 、无需额外示例 、无需调整参数(梯度更新)的情况下,直接完成任务的能力。例如,用户只需给模型一…