Codeforces Round 943 (Div. 3) A~E

A. Maximize?

Problem - A - Codeforces

给定x求出使这个式子最大的y:

不用想复杂直接循环枚举即可。

#include<bits/stdc++.h>
using ll=long long;
ll n,m;
void solve()
{int x;std::cin>>x;ll ans=0,y;for(int i=1;i<x;i++){if(std::__gcd(i,x)+i>ans){ans=std::__gcd(i,x)+i;y=i;}}std::cout<<y<<'\n';
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t=1;std::cin>>t;while(t--){solve();}return 0;
}

B. Prefiquence

Problem - B - Codeforces

看了一会感觉是二分4min就过了,感觉之前在洛谷刷二分还是蛮大作用的,从只会板子到看得出用得上。

#include<bits/stdc++.h>
using ll=long long;
ll n,m;
std::string a,b;
bool check(int x)
{int l=0;for(int i=0;i<m;i++){if(b[i]==a[l]){l++;if(l>=x) return 1;}}return 0;
}
void solve()
{std::cin>>n>>m;std::cin>>a>>b;int l=0,r=n,res=0;while(l<=r){int mid=l+r>>1;if(check(mid)){l=mid+1;res=mid;}else r=mid-1;}std::cout<<res<<'\n';
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t=1;std::cin>>t;while(t--){solve();}return 0;
}

 C. Assembly via Remainders

Problem - C - Codeforces

模拟一下样例即可推结论,本质是模拟。

#include<bits/stdc++.h>
using ll=long long;
const int N=510;
int a[N],b[N];
ll n,m;
void solve()
{std::cin>>n;for(int i=2;i<=n;i++){std::cin>>a[i];}//a[i]=x[i]%x[i-1]b[1]=a[2]+1;for(int i=2;i<=n;i++){if(a[i]<b[i-1]){b[i]=a[i]+b[i-1];while(b[i]<=a[i+1]){b[i]+=b[i-1];}}}for(int i=1;i<=n;i++){std::cout<<b[i]<<" ";}std::cout<<'\n';
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t=1;std::cin>>t;while(t--){solve();}return 0;
}

D. Permutation Game

Problem - D - Codeforces

 这个题想法就是,走的走法一定是一直往下走,要么停在一个点,不可能出现走停走的情况。然后我们直接把停在每一个点的情况全都考虑一下就好,比较两个人得分的最大值。

#include<bits/stdc++.h>
using ll=long long;
const int N=2e5+10;
ll a[N],p[N];
ll n,k,pb,ps;
bool st[N];
void solve()
{memset(st,0,sizeof st);std::cin>>n>>k>>pb>>ps;for(int i=1;i<=n;i++){std::cin>>p[i];}for(int i=1;i<=n;i++){std::cin>>a[i];}ll l=0,r=0;ll now=pb;ll nsum=0;for(ll i=1;i<=std::min(n,k);i++){if(st[now]) break;st[now]= true;l=std::max(l,nsum+a[now]*(k-i+1));nsum+=a[now];now=p[now];}nsum=0,now=ps;memset(st,0,sizeof st);for(ll i=1;i<=std::min(n,k);i++){if(st[now]) break;st[now]= true;r=std::max(r,nsum+a[now]*(k-i+1));nsum+=a[now];now=p[now];}//std::cout<<l<<" "<<r<<'\n';if(l>r) std::cout<<"Bodya"<<'\n';else if(l<r) std::cout<<"Sasha"<<'\n';else std::cout<<"Draw"<<'\n';
}
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t=1;std::cin>>t;while(t--){solve();}return 0;
}

 E. Cells Arrangement

Problem - E - Codeforces

这题我看的讲解,结论很简单,但是自己考场上想出来确实不那么容易。

就是一个n*n的棋盘,最多点数也就是从0~2*(n-1),如果能构造出一种方法把这几种情况全都覆盖那么毫无疑问就是最优解。

然后手捏一下会发现n个点全在对角线上的情况,能构造出0、2、4、6,我们只要能构造出一个1就可以了。然后会发现把第二个点移到第一个点旁边就能构造出1了,然后我们就能得到0~2*(n-1)的所有情况。

#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
typedef pair<int, int> PII;
void solve() 
{int n; cin >> n;cout << "1 1" << endl;cout << "1 2" << endl;for (int i = 3; i <= n; i ++ ) {cout << i << ' ' << i << endl;}
}
signed main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);int tt; cin >> tt;while (tt -- ) solve();return 0;
}

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

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

相关文章

探索Kimi模型AI:革新人工智能的未来

探索Kimi模型AI&#xff1a;革新人工智能的未来 人工智能&#xff08;AI&#xff09;技术的发展已经取得了巨大的进步&#xff0c;为我们的生活带来了许多便利和创新。在这个充满活力和竞争的领域中&#xff0c;Kimi模型AI以其独特的设计和功能吸引了人们的注意。本文将深入探…

图片浏览器-PicView

一、前言 PicView 是一款适用于 Windows 10 或 11 的快速高效的图像查看器&#xff0c;配备了干净简洁的用户界面&#xff0c;可以在不需要时方便地隐藏。 二、支持类型 它支持广泛的图像文件类型&#xff0c;包括&#xff1a;WEBP、GIF、SVG、PNG、JXL、HEIC、PSD 三、软件特…

快速编写测试用例(超详细~)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 当你学会了如何设计测试用例之后&#xff0c;接下来便是开始用例…

【动态规划】路径问题

1.不同路径 不同路径 思路&#xff1a; 状态表示 状态转移方程 class Solution { public:int uniquePaths(int m, int n) {// 创建dp表// 初始化// 填表// 返回值vector<vector<int>> dp(m 1, vector<int>(n 1));dp[0][1] 1;for(int i 1; i < m; i…

被问了n遍的小程序地理位置权限开通方法

小程序地理位置接口有什么功能&#xff1f; 在平时我们在开发小程序时&#xff0c;难免会需要用到用户的地理位置信息的功能&#xff0c;小程序开发者开放平台新规要求如果没有申请开通微信小程序地理位置接口( getLocation )&#xff0c;但是在代码中却使用到了相关接口&#…

YUM源仓库部署和NFS共享存储服务

一.YUM源仓库部署 1.YUM 概述 &#xff08;1&#xff09;是基于RPM软件包构建的软件更新机制 &#xff08;2&#xff09;可以自动解决依赖关系 &#xff08;3&#xff09;所有软件包有集中的YUM软件仓库提供 2.准备YUM源 &#xff08;1&#xff09;软件仓库的提供方式&…

软件公司为什么很少接二开项目?

前言 很多企业由于原有项目还在继续运营&#xff0c;但原有技术公司不想再合作或者不想再维持整个技术团队等原因&#xff0c;就需要找一个新的软件公司继续维护原有软件系统。但是一接触往往发现很多软件公司拒绝接手第三方的软件项目&#xff0c;这究竟是什么原因呢&#xff…

线程数据共享和安全(ThreadLocal)

目录 介绍图解底层代码解析 ThreadLocal是一个Java中的类&#xff0c;用于在多线程环境下存储线程本地变量。每个线程都可以独立访问自己的ThreadLocal变量&#xff0c;而不会影响其他线程的变量。ThreadLocal通常用来解决多线程并发访问共享变量时的线程安全性问题。 ThreadL…

GraphGPT——图结构数据的新语言模型

在人工智能的浪潮中&#xff0c;图神经网络&#xff08;GNNs&#xff09;已经成为理解和分析图结构数据的强大工具。然而&#xff0c;GNNs在面对未标记数据时&#xff0c;其泛化能力往往受限。为了突破这一局限&#xff0c;研究者们提出了GraphGPT&#xff0c;这是一种为大语言…

OpenNJet:云原生技术中的创新者与实践者

目录 引言OpenNJet介绍OpenNJet优势1. 性能无损动态配置2. 灵活的CoPilot框架3. 支持HTTP/34. 支持国密5. 企业级应用6. 高效安全 OpenNJet 编译与安装环境准备编译环境配置配置yum源yum 安装软件包创建符号连接修改 ld.so.conf 配置 编译代码 部署 WEB SERVER配置OpenNJet部署…

计算机毕设

随着社会和国家的重视&#xff0c;大学对于大学生毕业设计越来越重视。 做软件设计设计方面&#xff0c;前后端分离是必不可少的&#xff0c;代码管理工具&#xff0c;前后端接口测试是项目中必须要用到的工具。做大数据设计方面&#xff0c;主要是要用到爬虫进行数据爬取&…

AArch64 内存管理

本文是对arm developer网站《Learn the architecture - AArch64 memory management Guide》的学习笔记&#xff08;Documentation – Arm Developer&#xff09; 一、背景概述 本文介绍了AArch64中的内存转换&#xff0c;这是内存管理的关键&#xff0c;它解释了虚拟地址如何转…