目录

A

按题意模拟即可

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back using namespace std; void solve()
{
set<pii>s;
rep(i,1,4){
int x,y;cin>>x>>y;
s.insert({x,y});
}
for(auto [x1,y1]:s){
for(auto [x2,y2]:s){
if(x1==x2&&y1==y2) continue;
if(x1==x2){
cout<<abs(y1-y2)*abs(y1-y2)<<endl;
return;
}
}
}
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
// freopen("1.in", "r", stdin);
int _;
cin>>_;
while(_--)
solve();
return 0;
}

B

统计01和10的数量取最大值

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back using namespace std; void solve()
{
string s1,s2;
int n;cin>>n;
cin>>s1>>s2;
int cnt1=0,cnt2=0;
rep(i,0,s1.size()-1){
if(s1[i]=='0'&&s2[i]=='1') {
cnt1++;
}else if(s1[i]=='1'&&s2[i]=='0'){
cnt2++;
}
}
cout<<min(cnt1,cnt2)+abs(cnt1-cnt2)<<endl;
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
// freopen("1.in", "r", stdin);
int _;
cin>>_;
while(_--)
solve();
return 0;
}

C

考虑贪心,到达当前如果a操作的代价大选择b操作,b操作的代价大选择a操作

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back using namespace std; void solve()
{
int n,f,a,b;cin>>n>>f>>a>>b;
vector<int>t(n+1);
int ans=0;
rep(i,1,n){
cin>>t[i];
int costa=(t[i]-t[i-1])*a;
int costb=b;
ans+=min(costa,costb);
}
cout<<(ans>=f?"no":"yes")<<endl;
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
// freopen("1.in", "r", stdin);
int _;
cin>>_;
while(_--)
solve();
return 0;
}

D

双指针+贪心

先将两个数组排序,a升序,b降序。

然后比较两个端点的对答案的贡献,选择贡献大的


#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back using namespace std; void solve()
{
int n,m;cin>>n>>m;
vector<int>a(n+1),b(m+1);
rep(i,1,n){
cin>>a[i];
}
rep(i,1,m){
cin>>b[i];
}
sort(a.begin()+1,a.begin()+1+n);
sort(b.begin()+1,b.begin()+1+m,greater<int>());
int ans=0,la=1,ra=n,lb=1,rb=m;
rep(i,1,n){
int dl=abs(a[la]-b[lb]),dr=abs(a[ra]-b[rb]);
if(dl>dr){
ans+=dl;
la++;lb++;
}else{
ans+=dr;
ra--;rb--;
}
}
cout<<ans<<endl;
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
// freopen("1.in", "r", stdin);
int _;
cin>>_;
while(_--)
solve();
return 0;
}

E

博弈论的题目

将行列分开考虑

先考虑行,最终两者一定会走到一行。

什么情况下alice可能会赢,一定是\(yb-ya\)为奇数时

当\(yb-ya\)为偶数时,bob可能赢

然后考虑列一定是一方经过turn伦将对方挤到边界处获胜

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back using namespace std; void solve()
{
int n,m;cin>>n>>m;
int xa,ya,xb,yb;cin>>ya>>xa>>yb>>xb;
int diff=yb-ya;
if(diff<=0){
cout<<"draw"<<endl;
return;
}
int turn=diff>>1;
if(diff&1){
if(xb>xa){
xa=min(xa+turn+1,m);
xb=min(xb+turn,m);
if(xa>=xb) cout<<"alice"<<endl;
else cout<<"draw"<<endl;
}else{
xa=max(xa-turn-1,1*1ll);
xb=max(xb-turn,1*1ll);
if(xa<=xb) cout<<"alice"<<endl;
else cout<<"draw"<<endl;
}
}else{
if(xa>xb){
xa=min(xa+turn,m);
xb=min(xb+turn,m);
if(xa<=xb) cout<<"bob"<<endl;
else cout<<"draw"<<endl;
}else{
xa=max(xa-turn,1*1ll);
xb=max(xb-turn,1*1ll);
if(xa>=xb) cout<<"bob"<<endl;
else cout<<"draw"<<endl;
}
}
} signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
// freopen("1.in", "r", stdin);
int _;
cin>>_;
while(_--)
solve();
return 0;
}

F

根号分治



根号分治

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back using namespace std; int f[330][100010],g[330][100010]; void solve()
{
int n,q;cin>>n>>q;
vector<int>a(n+1);
rep(i,1,n){
cin>>a[i];
}
//预处理出来模数比较小的情况
int sq=sqrt(n); rep(i,1,sq){
rep(j,1,n){
f[i][j]=(j-i>=0?f[i][j-i]:0)+j/i*a[j];
g[i][j]=(j-i>=0?g[i][j-i]:0)+a[j];
}
} while(q--){
int s,d,k;cin>>s>>d>>k;
//模数较小直接查询预处理的结果
if(d<=sq){
int ans=0;
ans+=f[d][s+(k-1)*d]-(s-d>=0?f[d][s-d]:0);
ans-=(s/d-1)*(g[d][s+(k-1)*d]-(s-d>=0?g[d][s-d]:0));
cout<<ans<<' ';
}else{
//较大的话暴力去做
int ans=0;
for(int i=s,j=1;j<=k;i+=d,j++){
ans+=j*a[i];
}
cout<<ans<<' ';
}
}
cout<<endl;
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
// freopen("1.in", "r", stdin);
int _;
cin>>_;
while(_--)
solve();
return 0;
}

Codeforces Round 920 (Div. 3)(A~F)的更多相关文章

  1. Codeforces Round #316 (Div. 2) (ABC题)

    A - Elections 题意: 每一场城市选举的结果,第一关键字是票数(降序),第二关键字是序号(升序),第一位获得胜利. 最后的选举结果,第一关键字是获胜城市数(降序),第二关键字是序号(升序) ...

  2. Codeforces Round #240 (Div. 2)(A -- D)

    点我看题目 A. Mashmokh and Lights time limit per test:1 secondmemory limit per test:256 megabytesinput:st ...

  3. Codeforces Round #395 (Div. 2)(未完)

    2.2.2017 9:35~11:35 A - Taymyr is calling you 直接模拟 #include <iostream> #include <cstdio> ...

  4. Codeforces Round #324 (Div. 2) (哥德巴赫猜想)

    题目:http://codeforces.com/problemset/problem/584/D 思路: 关于偶数的哥德巴赫猜想:任一大于2的偶数都可写成两个素数之和. 关于奇数的哥德巴赫猜想:任一 ...

  5. B. Nirvana Codeforces Round #549 (Div. 2) (递归dfs)

    ---恢复内容开始--- Kurt reaches nirvana when he finds the product of all the digits of some positive integ ...

  6. 【Codeforces】Codeforces Round #491 (Div. 2) (Contest 991)

    题目 传送门:QWQ A:A - If at first you don't succeed... 分析: 按照题意模拟 代码: #include <bits/stdc++.h> usin ...

  7. 【Codeforces】Codeforces Round #492 (Div. 2) (Contest 996)

    题目 传送门:QWQ A:A - Hit the Lottery 分析: 大水题 模拟 代码: #include <bits/stdc++.h> using namespace std; ...

  8. Codeforces Round #671 (Div. 2) (A~E)

    Link~ 题面差评,整场都在读题 A 根据奇偶性判断一下即可. #include<bits/stdc++.h> #define ll long long #define N #defin ...

  9. Codeforces Round #524 (Div. 2)(前三题题解)

    这场比赛手速场+数学场,像我这样读题都读不大懂的蒟蒻表示呵呵呵. 第四题搞了半天,大概想出来了,但来不及(中途家里网炸了)查错,于是我交了两次丢了100分.幸亏这次没有掉rating. 比赛传送门:h ...

  10. Codeforces Round #624 (Div. 3)(题解)

    Codeforces Round #624 (Div.3) 题目地址:https://codeforces.ml/contest/1311 B题:WeirdSort 题意:给出含有n个元素的数组a,和 ...

随机推荐

  1. 2022美亚杯个人wp

    检材文件下载链接:https://pan.baidu.com/s/1kg8FMeMaj6BIBmuvUZHA3Q?pwd=ngzs 提取码:ngzs 个人赛与团队赛下载文件解压密码:MeiyaCup2 ...

  2. IDM(最佳的Windows下载工具)

    如果你是一名互联网"老司机",那么一定听过「IDM」这款下载工具的大名!它的全名叫做 Internet Download Manager (互联网下载管理器),缩写就是 IDM. ...

  3. 深度学习实践篇[17]:模型压缩技术、模型蒸馏算法:Patient-KD、DistilBERT、DynaBERT、TinyBERT

    深度学习实践篇[17]:模型压缩技术.模型蒸馏算法:Patient-KD.DistilBERT.DynaBERT.TinyBERT 1.模型压缩概述 1.2模型压缩原有 理论上来说,深度神经网络模型越 ...

  4. 分享四个实用的vue自定义指令

    v-drag 需求:鼠标拖动元素 思路: 元素偏移量 = 鼠标滑动后的坐标 - 鼠标初始点击元素时的坐标 + 初始点击时元素距离可视区域的top.left 将可视区域作为边界,限制在可视区域里面拖拽 ...

  5. 基于 Gurobi 的纸浆运载船顺序装卸决策建模求解|Gurobi优化应用

    Pulp-Carrier-Loading-Optimization-with-Gurobi 基于 Gurobi 的纸浆运载船顺序装卸决策建模求解.中山大学智能工程学院<运筹学>课程期末建模 ...

  6. 基于OpenCV-Python的图像位置校正和版面分析

    前言 使用opencv对图像进行操作,要求:(1)定位银行票据的四条边,然后旋正.(2)根据版面分析,分割出小写金额区域. 图像校正 首先是对图像的校正 读取图片 对图片二值化 进行边缘检测 对边缘的 ...

  7. Linux-expect(以交互形式输入命令,实现交互通信)

    1.expect简介 expect是一种脚本语言,它能够代替人工实现与终端的交互,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信. 安装命令: yum install ex ...

  8. 基于tensorflow的RBF神经网络案例

    1 前言 在使用RBF神经网络实现函数逼近中,笔者介绍了使用 Matlab 训练RBF神经网络.本博客将介绍使用 tensorflow 训练RBF神经网络.代码资源见:RBF案例(更新版) 这几天,笔 ...

  9. Springboot实现remember-me记住我功能

    1.什么是remeber-me? remeber-me即记住我功能,是我们在登录web系统时的常见勾选项.当我们登录一个web系统时除了输入常规的用户名.密码后还可以勾选记住我选项(假设该系统提供了该 ...

  10. layui切换select选项事件

    说明 我们经常遇到表单上面选择不同的下拉选项需要触发函数去完成一些业务逻辑,比如我这个地方根据所选商品查询它底下明细的数量,并展示. 效果演示 代码 <!--选择商品--> <div ...