CF756div3 vp

news2025/8/1 10:11:41

又被薄纱了,rk就不放了,好丢人QwQ

Dashboard - Codeforces Round 756 (Div. 3) - Codeforces

A. Make Even

小分类讨论

题意:

给定一个数,每次操作可以选取其前缀然后翻转其前缀,问你最少操作几次可以把该数变为偶数

思路:

对次数分类讨论即可

如果本来就是偶数,就是0次

如果s[1]是偶数,翻转一整个就行

如果没有偶数位,就是-1

其余都是两次

Code:

#include <bits/stdc++.h>
//#define int long long
#define LL long long
const int mxn=1e6+10;
const int mxe=2e5+10;
const int mod=1e9+7;
using namespace std;

string s;
void solve(){
    s.clear();
    cin>>s;
    int n=s.size();
    s=" "+s;
    if((s[n]-'0')%2==0) cout<<0<<'\n';
    else if((s[1]-'0')%2==0) cout<<1<<'\n';
    else{
        int ok=0;
        for(int i=1;i<=n;i++){
            if((s[i]-'0')%2==0) ok=1;
        }
        if(ok) cout<<2<<'\n';
        else cout<<-1<<'\n';
    }
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int __=1;cin>>__;
    //p_init(1e6);
    while(__--)solve();return 0;
}

B. Team Composition: Programmers and Mathematicians

贪心

题意:

有a个数学家和b个计算机学家,4个人一组组队,每组至少包含两种学科,问最多能组几队

谢谢,不会小学数学

思路:

要使队伍数尽可能多,就让少的那个学科每队派一人,然后和另一个队组队

那么答案就是min(min(a,b),(a+b)/4)

Code:

#include <bits/stdc++.h>
//#define int long long
#define LL long long
const int mxn=1e6+10;
const int mxe=2e5+10;
const int mod=1e9+7;
using namespace std;

int a,b;
void solve(){
    cin>>a>>b;
    cout<<min(min(a,b),(a+b)/4)<<'\n';
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int __=1;cin>>__;
    //p_init(1e6);
    while(__--)solve();return 0;
}

C. Polycarp Recovers the Permutation

构造+排列

题意:

思路:

一开始写了一小时的双指针模拟操作,然后写了一坨错了

这是构造题,考虑将一些一般条件特殊化,一般来说这种一般条件都是比较难处理的,像之前过年那会有个子序列,它就直接选了一整个序列,对于这种难处理的一般条件,我们考虑将其特殊化

注意到答案的排列(即原来的排列)的两端一定是最大值,否则就是无解

这道题就是把 双指针每次选小的那个 这个条件 转化成 固定一个指针动另一个,固定的那个指针大小一定为n,直接将其翻转即可

Code:

#include <bits/stdc++.h>
using namespace std;
//#pragma GCC optimize(2)
#define close();  ios::sync_with_stdio(false);
#define endl '\n'
#define rep(i, l, r) for(int i = l; i <= r; i++)
#define dwn(i, r, l) for(int i = r; i >= l; i--)
typedef long long LL;
const int N = 3e5+100;
int a[N];
int b[N]; 
void solve()
{
    int n; cin >> n;
    rep(i, 1, n) cin >> a[i];

    if(a[1] == n || a[n] == n)
    {
        dwn(i, n, 1) cout << a[i] << " "; cout << endl;
    }
    else cout << -1 << endl;

}

int main()
{
    close();
    int T; cin >> T;
    while(T--) solve();
    // system("pause");
}

F. ATM and Students

尺取法

题意:

找出最长的连续子串使得其前缀和+s>=0

思路:

尺取法模板题,这道题居然有*1800,逆

Code:

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mxn=2e5+10;

int n,s;
int a[mxn],sum[mxn];
void solve(){
    memset(sum,0,sizeof(sum));
    cin>>n>>s;
    for(int i=1;i<=n;i++) cin>>a[i],sum[i]=sum[i-1]+a[i];
    int ans=-1,ansl,ansr;
    for(int l=1,r=1;l<=n;l++){
        while(r<=n&&sum[r]-sum[l-1]>=-s) r++;
        r--;
        if(ans<r-l+1){
            ans=r-l+1;
            ansl=l;
            ansr=r;
        }
    }
    if(ans==-1||ansl>ansr) cout<<-1<<'\n';
    else cout<<ansl<<" "<<ansr<<'\n';
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int __=1;cin>>__;
    while(__--)solve();return 0;
}

D. Weights Assignment For Tree Edges

构造

题意:

给定一棵树

又给了一个排列,对于p[i]满足dis[p[i]]>dis[p[i-1]]

dis是该结点的树上前缀和,w是边权

要你给这棵树的边权w赋值,使得能满足p排列的条件

思路:

模拟一下样例发现,我们可以遍历p[i]排列,把边权变成公差为1 的等差数列(特殊化边权)

如果父亲结点在p[i]中出现的id大于结点i,那么父亲结点的dis必然小于结点i,矛盾,所以这种情况无解

否则就去递推出p[i]的dis和w

Code:

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mxn=2e5+10;

int n,rt;
int fa[mxn],w[mxn],dis[mxn],id[mxn],p[mxn];
void solve(){
    memset(dis,0,sizeof(dis));
    memset(w,0,sizeof(w));
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>fa[i];
        if(fa[i]==i) rt=i;
    }
    for(int i=1;i<=n;i++){
        cin>>p[i];
        id[p[i]]=i;
    }
    if(p[1]!=rt) cout<<-1<<'\n';
    else{
        int ok=1;
        for(int i=2;i<=n;i++){
            if(id[p[i]]<id[fa[p[i]]]) ok=0;
            w[p[i]]=dis[p[i-1]]+1-dis[fa[p[i]]];
            dis[p[i]]=dis[fa[p[i]]]+w[p[i]];
        }
        if(!ok) cout<<-1<<'\n';
        else{
            for(int i=1;i<=n;i++) cout<<w[i]<<" \n"[i==n];
        }
    }
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int __=1;cin>>__;
    while(__--)solve();return 0;
}

E1. Escape The Maze (easy version)

BFS

题意:

有一棵树,Vlad和n个朋友玩游戏,Vlad位于节点1,n个朋友位于其他节点,第i个朋友位于xi。每个时刻,每个人都能沿着树边到达另一个点,或者留在原地。如果Vlad到达叶子节点,则Vlad赢。如果在其到达叶子前和其他人碰面(叶子也不能有其他人),则Vlad输。问最少需要保留多少个人能够保证Vlad输,即选取朋友的一个最小的子集,使得Vlad不能赢。

思路:

直接去BFS模拟过程,一格格染色,如果能把叶子结点染成1就是赢

Code:

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mxn=2e5+10;
const int mxe=2e5+10;
struct ty{
    int to,next;
}edge[mxe<<1];
queue<int> q;

int n,k,u,v;
int tot=0,ok=0;
int x[mxn],d[mxn],head[mxn],mark[mxn],vis[mxn];
void add(int u,int v){
    edge[tot].to=v;
    edge[tot].next=head[u];
    head[u]=tot++;
}
void init(){
    tot=0;ok=0;
    for(int i=0;i<=n;i++){
        x[i]=0;
        head[i]=-1;
        d[i]=0;
        mark[i]=0;
        vis[i]=0;
    }
}
bool bfs(){
    for(int i=1;i<=k;i++) q.push(x[i]),vis[x[i]]=1;
    q.push(1);
    vis[1]=1;
    mark[1]=1;
    while(!q.empty()){
        int u=q.front();
        q.pop();
        if(d[u]==1&&mark[u]==1&&u!=1) ok=1;
        for(int i=head[u];~i;i=edge[i].next){
            if(vis[edge[i].to]) continue;
            vis[edge[i].to]=1;
            q.push(edge[i].to);
            mark[edge[i].to]=mark[u];
        }
    }
    return ok;
}
void solve(){
    cin>>n>>k;
    init();
    for(int i=1;i<=k;i++) cin>>x[i];
    for(int i=1;i<=n-1;i++){
        cin>>u>>v;
        add(u,v);
        add(v,u);
        d[v]++;d[u]++;
    }
    //for(int i=1;i<=n;i++) if(d[i]==1) cout<<i<<'\n';
    if(bfs()) cout<<"YES"<<'\n';
    else cout<<"NO"<<'\n';
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int __=1;cin>>__;
    while(__--)solve();return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于深度学习的轴承寿命预测实践,开发CNN、融合LSTM/GRU/ATTENTION

关于轴承相关的项目之前做的大都是故障识别诊断类型的&#xff0c;少有涉及回归预测的&#xff0c;周末的时候宅家发现一个轴承寿命加速实验的数据集就想着拿来做一下寿命预测。首先看下数据集如下&#xff1a;直接百度即可搜到&#xff0c;这里就不再赘述了。Learning_set为训…

什么是蜕变测试?

文章目录1.传统测试2.蜕变测试2.1.蜕变测试的理解2.2.蜕变测试的步骤2.2.1.生成蜕变关系2.2.2.生成蜕变用例2.2.3.执行蜕变用例2.2.4.校验蜕变关系参考文献1.传统测试 在没有蜕变测试的时代&#xff0c;传统软件测试的原理是&#xff1a;给定输入&#xff0c;观察被测软件的输…

你把骑行当什么? 它就是你需要的

1.骑行是一种有活力的运动&#xff0c;尝试一下你一定会喜欢上它的&#xff01;2.把骑行当作一种娱乐&#xff0c;让自己快乐地体验自然的美&#xff01;3.骑行可以帮助你改变心态&#xff0c;让你的心情变得更加愉悦&#xff01;4.让骑行成为你每天的计划&#xff0c;看看骑行…

项目实战典型案例27——单表的更新接口有9个之多

单表的更新接口有9个之多一&#xff1a;背景介绍环境准备引入pom依赖配置数据库连接mybatis配置文件Mybatis的配置类编写通用的更新语句可以覆盖的更新接口暂时无法覆盖的接口测试四&#xff1a;总结五&#xff1a;升华一&#xff1a;背景介绍 本篇博客是对项目开发中出现的单…

如何分析sql性能

1、前言 提到sql性能分析&#xff0c;可能都会想到explain&#xff0c;它在mysql里被称为执行计划&#xff0c;也就是说可以通过该命令看出mysql在通过优化器分析之后如何执行sql。mysql的内置优化器十分强大&#xff0c;它能帮我们把sql再次优化&#xff0c;以最低的成本去执…

记录自己开发一款小程序中所遇到的问题(uniapp+uview)(持续更新)

每次开发小程序中&#xff0c;都会遇到各种各样的问题。但是有的问题已经遇到过了&#xff0c;但是遇到的时候还是要各种的问度娘。 特此出这篇文章&#xff0c;方便自己也是方便大家。 仅供参考 1. u-collapse的样式在h5中正常&#xff0c;但是运行到微信小程序中样式就乱了…

滑动窗口求最大和最小

滑动窗口 要区分最小和最大滑窗&#xff0c;内层while循环的条件和更新结果的地方 核心&#xff1a; 关键的区别在于&#xff0c;最大滑窗是在迭代右移右边界的过程中更新结果&#xff0c;而最小滑窗是在迭代右移左边界的过程中更新结果。 最小滑窗 给定数组 nums&#xff0…

成都待慕电商:抖音极速版商品卡免佣扶持政策规则

新规&#xff0c;抖音极速版推出商品卡免佣扶持政策规则&#xff0c;本次抖音规则如何规定&#xff1f;具体往下看&#xff1a;一、政策简介1.1政策介绍为了更好地满足用户消费需求&#xff0c;丰富商家经营模式&#xff0c;降低商家经营成本&#xff0c;现平台针对商品卡场景推…

【数据结构】模拟实现 堆

堆数据结构是一种数组对象&#xff0c;它可以被看作一颗完全二叉树的结构&#xff08;数组是完全二叉树&#xff09;&#xff0c;堆是一种静态结构。堆分为最大堆和最小堆。最大堆&#xff1a;每个父结点都大于孩子结点。最小堆&#xff1a;每个父结点都小于孩子结点。堆的优势…

前端脚手架搭建(part 1)

本篇主要介绍如何搭建前端脚手架&#xff0c;一步一步地实现通过搭建的脚手架下载对应的项目模板。通过脚手架的创建&#xff0c;可以快速搭建项目的基础配置和模板&#xff0c;在部门项目开发的规范中尤其总要。初始化项目&#xff1a;创建一个文件夹&#xff0c;命名随便&…

【LeetCode】螺旋矩阵 [M](数组)

54. 螺旋矩阵 - 力扣&#xff08;LeetCode&#xff09; 一、题目 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,…

OceanBase 生态产品:时序数据库CeresDB 正式发布 1.0 版本

欢迎访问OceanBase官网获取更多信息&#xff1a;https://www.oceanbase.com/ CeresDB 是一款拥有计算存储分离架构的分布式时序数据库&#xff0c;其存储层可以基于 OceanBase KV、OSS 等。经过近一年的开源研发工作&#xff0c;CeresDB 1.0 现已正式发布&#xff0c;达到生产…

tcsh常用配置

查看当前的shell类型 在 Linux 的世界中&#xff0c;有着许多 shell 程序。常见的有&#xff1a; Bourne shell (sh) C shell (csh) TC shell (tcsh) Korn shell (ksh) Bourne Again shell (bash) 其中&#xff0c;最常用的就是bash和tcsh&#xff0c;本次文章介绍tcsh的…

HACKTHEBOX——Help

nmap可以看到对外开放了22,80,3000端口可以看到80端口和3000端口都运行着http服务&#xff0c;先从web着手切入TCP/80访问web提示无法连接help.htb&#xff0c;在/etc/hosts中写入IP与域名的映射打开只是一个apache default页面&#xff0c;没什么好看的使用gobuster扫描网站目…

配电室常见6大隐患,你中了几个?

当今社会&#xff0c;电力的重要性不言而喻&#xff0c;在变电站、配电室等一些场景中放置有大量的电气设备。 为保障这些设备正常运行&#xff0c;以免因为这些设备故障导致无法正常进行电力供应&#xff0c;严重影响生产和生活&#xff0c;我们需要运行一套动环监控系统。 配…

【MySQL】约束

文章目录1. 约束2. 非空约束 NOT NULL3. 唯一性约束 UNIQUE4. 主键约束 PRIMARY KEY5. 自增约束 AUTO_INCREMENT6. 外键约束FOREIGN KEY7. 默认值约束 DEFAULT8. 小结1. 约束 为了保证数据的完整性&#xff0c;SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面…

达人合作加持品牌布局,3.8女神玩转流量策略!

随着迅猛发展的“她经济”&#xff0c;使社区本就作为内容种草的平台&#xff0c;自带“营销基因”。在3.8女神节即将到来之际&#xff0c;如何充分利用平台女性资源优势&#xff0c;借助达人合作等手段&#xff0c;实现迅速引流&#xff0c;来为大家详细解读下。一、小红书节日…

数据的标准化处理

假设各个指标之间的水平相差很大&#xff0c;此时直接使用原始指标进行分析时&#xff0c;数值较大的指标&#xff0c;在评价模型中的绝对作用就会显得较为突出和重要&#xff0c;而数值较小的指标&#xff0c;其作用则可能就会显得微不足道。 因此&#xff0c;为了统一比较的标…

60% 程序员大呼:我要远程办公!

近几年数字化的普及&#xff0c;白领们从挤地铁、打卡、开会、写日报转变成“早上9点视频会议”&#xff0c;企业的办公场所也从写字楼、会议室、工位变成了手机、电脑中的线上会议室&#xff0c;远程办公已经成为一种流行的办公形式。《财富》杂志发现&#xff0c;75%的员工表…

全网火爆,软件测试面试题大全,接口测试题+回答 (18k+的offer)

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 面试测试工程师的时…