SMU Spring 2023 Contest Round 5(2023 (ICPC) Jiangxi Provincial Contest -- Official Contest)
Problem A. Drill Wood to Make Fire
S * V >= n即可

#include<bits/stdc++.h> #define int long long
#define endl '\n' using namespace std; const int N = 2010,mod = 1e9 + 7;
int n,s,v; void solve() {
cin >> n >> s >> v;
if(s * v >= n)
cout << 1 << endl;
else cout << 0 << endl;
} int32_t main() {
ios::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
int h_h = 1;
cin >> h_h;
while(h_h--)solve();
return 0;
}
Problem B. Wonderful Array
发现 = 的个数就是看有多少 ai mod m = 0,< 的个数不好求,那么就考 虑求 > 的个数。 先将所有 ai 对 m 取模,不会影响答案。因为 0 ⩽ bi+1 − bi < m
bi mod m > bi+1 mod m ⇐⇒ ⌊bi/m⌋ < ⌊bi+1/m⌋
整体考虑的话就会发现,> 的个数就是 ⌊ bn / m ⌋

#include <bits/stdc++.h>
#define endl '\n'
#define int long long
#define inf 0x3f3f3f3f using namespace std;
const int N = 2e3 + 10; //typedef long long ll;
typedef pair<int,int> PII;
//queue<PII> q1;
map<int, int > mp;
int n,m,t,k;
priority_queue <int,vector<int>,greater<int> > Q;
void solve()
{
cin >> k;
vector<int> a(k);
for(int i = 0;i < k;i++)
cin >> a[i];
int x;
cin >> n >> m >> x;
for(int i = 0;i < k;i++)
a[i] %= m;
int sum = x % m;
int num = 0;
for(int i = 0;i < k;i++)
num += a[i];
sum += n / k * num;
for(int i = 0;i < n % k;i++)
sum += a[i];
cout << n - sum / m << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
int Ke_scholar = 1;
//cin >> Ke_scholar;
while(Ke_scholar--)
solve();
return 0;
} /* */
Problem I. Tree
我们对每个点直接维护答案,发现对于操作 1,路径上两个端点之外的点 答案不变。因此操作 1 直接对两个端点异或上这个数,操作 2 直接输出 即可。

#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define endl '\n'
#define int long long using namespace std; const int N = 1e6+10, mod = 1e9 + 7; //typedef long long ll;
typedef pair<int,int> PII;
int n,m,t,k;
map<int,int> mp;
priority_queue<int> QQ;
deque<int> Q;
void solve() {
cin >> n >> m;
vector<PII> a[n + 1];
vector<int> sum(n + 1,0);
for(int i = 1;i < n;i++){
int x,y,z;
cin >> x >> y >> z;
a[x].push_back({y,z});
a[y].push_back({x,z});
}
for(int i = 1;i <= n;i++){
for(auto j : a[i])
sum[i] ^= j.second;
}
while(m--){
int op;
cin >> op;
if(op == 1){
int x,y,z;
cin >> x >> y >> z;
sum[x] ^= z;
sum[y] ^= z;
}
else{
int x;
cin >> x;
cout << sum[x] << endl;
}
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int Ke_scholar = 1;
//cin >> Ke_scholar;
while(Ke_scholar--)
solve();
return 0;
}
/* */
Problem J. Function
给出一个正整数 n(1 ⩽ n ⩽ 105 ) 和 n 个二次项系数为 1 的二次函数,第 i 个函数形如 y = (x − i) 2 + bi(1 ⩽ bi ⩽ n)
然后给出一个正整数 m(1 ⩽ m ⩽ 105 ),表示操作总数。
操作共有两种,第一种是添加一个二次项系数为 1 的二次函数,形如 y = (x − a) 2 + b(1 ⩽ a, b ⩽ n)。第二种是询问所有二次函数在 x = a(1 ⩽ a ⩽ n) 处的最小函数值
。 具体的,每次操作会先给出操作的类型,如果是 0 表示是第一种操作,如 果是 1 表示是第二种操作。对于第一种操作,会再给出两个正整数 a, b。 对于第二种操作,则会再给出一个正整数 a。
查询 x = a 时函数的最小值,容易发现可能为最小值的函数只可能在左右 根号的范围内。 那么只要在左右根号的范围内枚举所有函数,找出最优的即可。

#include <map>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <cstdio>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define inf 0x3f3f3f3f
#define endl '\n'
#define int long long
#define LB long double using namespace std; const int N = 1000000000, mod = 1e9 +7; //typedef long long ll;
typedef pair<int,int> PII;
//queue<PII> q1;
map<char, int > mp;
//priority_queue <LB,vector<LB>,less<LB> > Q;
int n,m,t,k;
/* */
string s;
void solve()
{
cin >> n;
vector<int> b(n + 1);
for(int i = 1;i <= n;i++)
cin >> b[i];
int sn = sqrt(n);
int q;
cin >> q;
while(q--){
int op;
cin >> op;
if(op){
int x;
cin >> x;
int res = LONG_LONG_MAX;
for(int i = x - sn; i <= sn + x + 1;i ++){
if(i >= 0 && i < n && b[i])
res = min(res, (i - x) * ( i - x) + b[i]);
}
cout << res << endl;
}
else{
int x,y;
cin >> x >> y;
if(b[x])
b[x] = min(y, b[x]);
else
b[x] = y;
}
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);cout.tie(nullptr);
int Ke_scholar = 1;
// cin >> Ke_scholar ;
while(Ke_scholar--)
solve();
return 0;
}
Problem K. Split
实际上就是先对n个数的差进行预处理,排序后求一个前缀和,操作0时对于这个差值是不会产生任何改变的,操作1时给一个整数k,则n - k - 1的前缀和.

#include<bits/stdc++.h>
using namespace std; int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
int n;
cin >> n;
vector<int> a(n);
for(int i = 0;i < n;i ++)
cin >> a[i];
int q;
vector<int> ve;
for(int i = 1;i < n;i ++){
int x = abs(a[i] - a[i - 1]);
ve.push_back(x);
}
sort(ve.begin(),ve.end());
map<int,int> mp;
for(int i = 0;i < ve.size();i++){
if(i == 0)
mp[i] = ve[i];
else
mp[i] = ve[i] + mp[i - 1];
}
cin >> q;
while(q--){
int op;
cin >> op;
if(!op){
int x;
cin >> x;
a[x - 1] = a[x] + a[x - 2] - a[x - 1];
}
else{
int k;
cin >> k;
cout << mp[n - k - 1] << endl;
}
}
return 0;
}
/* */
Problem L. Zhang Fei Threading Needles - Thick with Fine
输出n - 1即可

#include <map>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <cstdio>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define inf 0x3f3f3f3f
#define endl '\n'
#define int long long using namespace std; const int N = 1e9 + 10, mod = 1e9 +7; //typedef long long ll;
typedef pair<int,int> PII;
//queue<PII> q1;
map<char, int > mp;
//priority_queue <int,vector<int>,greater<int> > q2;
int n,m,t,k;
/* */
string s;
vector<PII> a,ans;
void solve()
{
cin >> n;
cout << n - 1 << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int Ke_scholar = 1;
//cin >> Ke_scholar ;
while(Ke_scholar--)
solve();
return 0;
}
SMU Spring 2023 Contest Round 5(2023 (ICPC) Jiangxi Provincial Contest -- Official Contest)的更多相关文章
- HYNB Round 8: 2016 ICPC Amritapuri Regionals
HYNB Round 8: 2016 ICPC Amritapuri Regionals A - Tim and BSTs 做法 经典的树 DP 问题. \(dp[u][i]\) 表示考虑以 u 为根 ...
- Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest
Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest(dp+线段树) 题目链接 题意: 给定3个人互不相同的多个数字,可以 ...
- The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple - L Doki Doki Literature Club
Doki Doki Literature Club Time Limit: 1 Second Memory Limit: 65536 KB Doki Doki Literature Club ...
- 2018浙江省赛(ACM) The 15th Zhejiang Provincial Collegiate Programming Contest Sponsored by TuSimple
我是铁牌选手 这次比赛非常得爆炸,可以说体验极差,是这辈子自己最脑残的事情之一. 天时,地利,人和一样没有,而且自己早早地就想好了甩锅的套路. 按理说不开K就不会这么惨了啊,而且自己也是毒,不知道段错 ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Capture the Flag
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5503 The 12th Zhejiang Provincial ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Team Formation
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5494 The 12th Zhejiang Provincial ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Beauty of Array
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5496 The 12th Zhejiang Provincial ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Lunch Time
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5499 The 12th Zhejiang Provincial ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest Convert QWERTY to Dvorak
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5502 The 12th Zhejiang Provincial ...
- zoj The 12th Zhejiang Provincial Collegiate Programming Contest May Day Holiday
http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5500 The 12th Zhejiang Provincial ...
随机推荐
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Ads Kit
1.问题描述: 开屏广告效果最好的实现方式? 解决方法: 1.动画效果和开发者的实现方式有关,和开屏广告页面本身没什么关系的: 2.示例代码中使用Router跳转的方式展示广告,主要是用于演示广告接口 ...
- c/c++:带有返回类型的函数没有return语句会怎么样?
c/c++:带有返回类型的函数没有return语句会怎么样 背景 机器有时候启动的时候发现异常,跟踪了代码发现,有人在写一个int函数的时候,有一个分支没有return: 参考:https://www ...
- Android ADB命令集锦
Android ADB命令集锦 原文(有删改):https://blog.csdn.net/dianziagen/article/details/57400723 本文包括: adb基本指令 Shel ...
- 单芯片国产ARM+FPGA,复旦微FMQL20SM工业核心板正式发布!
- JavaScript -- 数据类型 --手稿
- SpringBoot 整合Easy Poi 下载Excel(标题带批注)、导出Excel(带图片)、导入Excel(校验参数,批注导出),附案例源码
导读 日常开发过程中,经常遇到Excel导入.导出等功能,其中导入逻辑相对麻烦些,还涉及到参数的校验,然后将错误信息批注导出.之前写过EasyExcel导入(参数校验,带批注)(点我直达1.点我直达2 ...
- Centos 7 永久关闭防火墙
查看防火墙状态 systemctl status firewalld 出现:Active: inactive (dead),代表防火墙已关闭 临时关闭防火墙 重启后,防火墙会重新开启 systemct ...
- git push origin master和git push的区别
1.git push origin master 指定远程仓库名和分支名. 2.git push 不指定远程仓库名和分支名. 3. 这两者的区别:git push是git push origin ma ...
- Day 3 - 单调栈、单调队列、凸包与斜率优化
单调栈 引入 何为单调栈?顾名思义,单调栈即满足单调性的栈结构.与单调队列相比,其只在一端进行进出. 为了描述方便,以下举例及伪代码以维护一个整数的单调递增栈为例. 过程 插入 将一个元素插入单调栈时 ...
- 关于IE11点击的select框需要点击两次才能展开option选择框
需求:select是一个级联选择框,点击select框之后向后台请求,然后把请求的数据展示出来. 问题:绑定onclick或者onfocus的时候,需要点击select框两次,才能将option选择框 ...