Educational Codeforces Round 171 (Rated for Div. 2)题解记录

news/2025/1/21 15:41:50/文章来源:https://www.cnblogs.com/cjcf/p/18512815

比赛链接:https://codeforces.com/contest/2026

A. Perpendicular Segments


题目说了必定有答案,直接对角线即可

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define ll                                    long long 
#define lowbit(x) (x & -x)
using namespace std;
mt19937 rnd(time(0));
const ll mod=1e9+7;
const ll N=2e5+5;
ll ksm(ll x,ll y)
{ll ans=1;while(y){if(y&1)ans=(ans%mod*x%mod)%mod;x=x%mod*(x%mod)%mod;y>>=1;}return ans%mod%mod;
}
ll gcd(ll x,ll y)
{if(y==0)return x;else return gcd(y,x%y);
}
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
int main()
{fio();ll t;cin>>t;while(t--){ll x,y,k;cin>>x>>y>>k;ll j=min(x,y);cout<<0<<" "<<0<<" "<<j<<" "<<j<<endl;cout<<j<<" "<<0<<" "<<0<<" "<<j<<endl;}
}

B. Black Cells


n为偶数答案是固定的,n为奇数可以二分答案

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define ll                                    long long 
#define lowbit(x) (x & -x)
using namespace std;
mt19937 rnd(time(0));
const ll mod=1e9+7;
const ll N=2e5+5;
ll ksm(ll x,ll y)
{ll ans=1;while(y){if(y&1)ans=(ans%mod*x%mod)%mod;x=x%mod*(x%mod)%mod;y>>=1;}return ans%mod%mod;
}
ll gcd(ll x,ll y)
{if(y==0)return x;else return gcd(y,x%y);
}
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
ll a[250000];
int main()
{fio();ll t;cin>>t;while(t--){ll n;cin>>n;if(n==1){ll b;cin>>b;cout<<1<<endl;continue;}for(ll i=1;i<=n;i++)cin>>a[i];sort(a+1,a+1+n);//a[n+1]=0;if(n%2==0){ll ans=0;for(ll i=1;i<=n-1;i+=2){ans=max(ans,a[i+1]-a[i]);}cout<<ans<<endl;}else {ll l=1,r=1e18;while(l<r){ll mid=(l+r)>>1;ll gs=1;ll cnt=0;ll pd=0;while(gs<=n-1){if(a[gs+1]-a[gs]<=mid){gs+=2;continue;}else {if(cnt==1){pd=1;break;}gs++;cnt++;continue;}}if(pd)l=mid+1;else r=mid;}cout<<r<<endl;}}
}

C. Action Figures


分析可得0点必选买,非0点优先用0点消除,其次用下标最小的1点消除

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define ll                                    long long 
#define lowbit(x) (x & -x)
using namespace std;
mt19937 rnd(time(0));
const ll mod=1e9+7;
const ll N=2e5+5;
ll ksm(ll x,ll y)
{ll ans=1;while(y){if(y&1)ans=(ans%mod*x%mod)%mod;x=x%mod*(x%mod)%mod;y>>=1;}return ans%mod%mod;
}
ll gcd(ll x,ll y)
{if(y==0)return x;else return gcd(y,x%y);
}
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
ll a[550000];
int main()
{fio();ll t;cin>>t;while(t--){ll mo=1;ll n;cin>>n;string f;cin>>f;set<ll>q,k;ll op=0;ll ans=0;for(ll i=1;i<=n;i++){if(f[i-1]=='0')q.insert(i);else k.insert(i);}for(ll i=f.size()-1;i>=0;i--){if(f[i]=='1'){ll c=(i+1);auto j=k.lower_bound(c);if(j!=k.end()){if(q.size()>0){ll u=*q.rbegin();q.erase(u);ans+=u;k.erase(c);}else{if(k.size()==1){ans+=c;k.clear();}else {ll u=*k.begin();k.erase(c);k.erase(u);ans+=u;}}}}else {ll u=i+1;if(q.lower_bound(u)!=q.end()){q.erase(u);ans+=u;}}//cout<<ans<<endl;}cout<<ans<<endl;}
}

D. Sums of Segments


直接暴力统计优化,数据不会爆long long

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define ll                                    long long 
#define lowbit(x) (x & -x)
using namespace std;
mt19937 rnd(time(0));
const ll mod=1e9+7;
const ll N=2e5+5;
ll ksm(ll x,ll y)
{ll ans=1;while(y){if(y&1)ans=(ans%mod*x%mod)%mod;x=x%mod*(x%mod)%mod;y>>=1;}return ans%mod%mod;
}
ll gcd(ll x,ll y)
{if(y==0)return x;else return gcd(y,x%y);
}
void fio()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
ll a[325000];
ll pre[325000];//一维前缀
ll pre1[325000];//类似二维
ll sub[320555];
ll pre3[325000];
//1 
//1 2
//1 2 5
//1 2 5 10
ll n;
set<pair<ll,ll>>q;
ll qu(ll x)
{ll ans=0;auto j=q.lower_bound({x,0});ll zq=(*j).second;ans+=pre3[zq-1];j--;ll wz=x-(*j).first+zq-1;ans+=pre1[zq]-sub[wz+1]-(pre[wz]-pre[zq-1])*(n-zq-(wz-zq));return ans;
}
int main()
{fio();ll t;t=1;while(t--){q.clear();cin>>n;ll cnt=0;for(ll i=1;i<=n;i++)cin>>a[i],pre[i]=pre[i-1]+a[i],cnt+=pre[i];pre1[1]=cnt;for(ll i=2;i<=n;i++)pre1[i]=pre1[i-1]-(n-i+2)*a[i-1];for(ll i=1;i<=n;i++)pre3[i]=pre3[i-1]+pre1[i];sub[n+1]=0;for(ll i=n;i>=1;i--)sub[i]=sub[i+1]+a[i]*(n-i+1);q.insert({0,0});cnt=0;for(ll i=1;i<=n;i++){cnt+=(n-i+1);q.insert({cnt,i});}ll 	op;cin>>op;while(op--){ll l,r;cin>>l>>r;cout<<qu(r)-(l-1?qu(l-1):0)<<endl;}}
}

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

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

相关文章

BUUCTF相册

BUUCTF相册 定位函数 根据题目提示:邮箱 全局搜索mail 然后找到一个sendMailByJavaMail方法在这里定义了一个C2静态类,保存了发送邮件的一些常量 跟进c2这里发现mailform未初始化,而在下面用base64解码初始化了mailform 而这个使用了loadlibrary函数,加载了core.so文件中的…

烽火光猫不要超密不改桥接的前提下关闭 ipv6 防火墙

背景众所周知,运营商给的光猫默认都是带 ipv6 的防火墙的,会导致所有默认的入站流量都被丢弃; 网上能找到的关闭 ipv6 防火墙的方法,主要有两种:获取超级管理员权限,然后在光猫后台中关闭 ipv6 防火墙; 光猫改桥接,由路由器拨号,然后在路由器中关闭防火墙。然而,这两…

敏捷开发工具有哪些

# 敏捷开发工具有哪些 在当今快速变化的软件开发环境中,敏捷开发工具成为了推动项目高效运行的关键。这些工具主要包括:JIRA、Trello、Asana、Scrumwise和Sprintly。其中,JIRA因其强大的功能和灵活性而受到广泛的青睐,特别是在任务跟踪、问题管理以及报告方面的能力。通过使…

陈志侠第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc这个作业的目标 编写实现命令行计数统计文本程序姓名-学号 陈志侠 2022329301009码云地址 https://gitee.com/chen-zhixia666/second-assignment一、项目简介及其相关的用法 1.1项目简介 本项目旨在利用PyCharm实…

windows平台有哪些好用的屏幕取词翻译工具

windows平台好用的屏幕取词翻译工具:1. 深度翻译(DeepL);2. 划词翻译(Capture2Text);3. 谷歌翻译(Google Translate);4. 考拉翻译(有道词典);5. 欧路词典(eudic);6. 轻译(QTranslate)。深度翻译是一款强大的翻译工具,不仅支持文本翻译,还能通过屏幕取词实现…

在C语言中进行网络编程时,有哪些辅助工具可用

标题:在C语言中进行网络编程时,有哪些辅助工具可用? 在C语言中进行网络编程时,可用的辅助工具包括套接字库(如Winsock、BSD Sockets)、协议库(如OpenSSL)、网络调试工具(如Wireshark)、以及集成开发环境(如Eclipse、Visual Studio)。这些工具为开发者提供了强大的支…

Go语言能否替代php做互联网网站开发

在互联网网站开发领域,Go语言具备了替代PHP的潜力。Go语言(也称为Golang)被设计为一种静态类型、编译语言,其出色的并发处理能力、简洁的语法、以及高效的性能表现,使其在开发大规模分布式系统时表现卓越。而PHP作为一种动态类型的解释语言,在网页脚本开发领域占据着重要…

实时语音转写技术:思通数科AI多模态平台赋能法庭审理,为庭审记录带来新体验

一、系统介绍 系统具备强大的特征提取和语音处理能力,利用美尔频谱系数(MFCCs)等算法进行高精度声学建模,并结合语言模型确保转写内容的上下文完整性。支持多语种识别、讲话人辨识、实时记录等功能,为多语言法庭环境及国际化庭审提供技术支持。平台还结合了Bert算法进行特…

为什么要异步复位,同步释放?

结论: 防止复位信号撤除时,因为违反recovery和removal产生亚稳态事件; 接下来是详细解释: 异步复位的弊端: 异步复位中最严重的问题是,如果异步复位信号在触发器时钟有效沿附近“释放”(复位信号从有效变为无效)的话,可能会导致触发器输出的亚稳态。异步复位信号释放(…

2级同步引发的思考

1. 2级同步的第二拍亚稳态出现概率非常小,但是也有可能出现,这一点对于从慢到快和从快到慢都是一样的;如果认为第二拍亚稳态不会出现的话,从慢到快从功能上,一定可以采到正确的值;从快到慢从功能上,不一定可以采到正确的值; 电路如下所示: 时序如下所示: 情况1和情…

thinkphp5如何获取请求过来的网址

​为了掌握如何在thinkphp5中获取请求的网址,本文将介绍以下几个关键步骤:1.了解请求对象的基础;2.使用url方法获取完整URL;3.获取URL中的各个组成部分;4.使用场景:重定向与获取上一个页面的URL;5.处理请求对象中的安全性问题。在使用thinkphp5进行开发时,对请求的处理…

【学习笔记】dp 优化

单调栈 & 单调队列 没啥好说的。放两道题目。 线段树优化 dp 例题 CF115E Linear Kingdom Races 容易想到记 \(f_{i,j}\) 表示前 \(i\) 个跑道,\([i-j+1,i]\) 全部修好的最大利润,但不好优化。考虑转化为表示 \([j,i]\) 全部修好的最大利润。最简单的状态转移方程: \[f_…