AtCoder ABC346 A-E题解

比赛链接:ABC346

Problem A:

签到题。

#include <bits/stdc++.h>
using namespace std;
const int maxn=105;
int A[105],B[105];
int main(){int N;cin>>N;for(int i=1;i<=N;i++)cin>>A[i];for(int i=1;i<N;i++){B[i]=A[i+1]*A[i];cout<<B[i]<<endl;}return 0;
}

Problem B:

这题并不需要什么高级的玩意,只用把S复制几遍,然后暴力判断即可。(思路源于tourist的代码)

#include <bits/stdc++.h>
using namespace std;
int main(){string S="wbwbwwbwbwbw";while(S.size()<10000)S+=S;int W,B;cin>>W>>B;for(int i=0;i<((int)S.size()-W-B);i++){string t=S.substr(i,W+B);if(count(t.begin(),t.end(),'w')==W){cout<<"Yes"<<endl;return 0;}}//cout<<"No"<<endl;return 0;
}

Problem C:

把A扔到一个set里,然后遍历set即可。时间复杂度\Theta (N)

//long long
#include <bits/stdc++.h>
using namespace std;
const int maxn=200005;
int A[maxn];
set<int> st;
int main(){long long N,K;cin>>N>>K;for(int i=1;i<=N;i++){cin>>A[i];st.insert(A[i]);}int ans=(1+K)*K/2;for(int x:st){if(1<=x && x<=K)ans-=x;}cout<<ans<<endl;return 0;
}

Problem D:

Why DP?????????????????????????????????????????????????????

我们令dp_{i,j,k}表示当前的状态。i是第i个字符,j是当前字符选不选,k是是否有连续。

然后我们分类讨论这个字符和上一个字符是否相同即可。

//long long
#include <bits/stdc++.h>
using namespace std;
const int maxn=200005;
int C[maxn],dp[maxn][2][2];
int main(){int N;string S;cin>>N>>S;memset(dp,0x3f3f3f3f,sizeof(dp));for(int i=0;i<N;i++)cin>>C[i];dp[0][0][0]=0;dp[0][1][0]=C[0];for(int i=1;i<N;i++){if(S[i]==S[i-1]){dp[i][1][0]=min(dp[i][1][0],dp[i-1][0][0]+C[i]);dp[i][0][0]=min(dp[i][0][0],dp[i-1][1][0]);dp[i][0][1]=min(dp[i][0][1],min(dp[i-1][0][0],dp[i-1][1][1]));dp[i][1][1]=min(dp[i][1][1],min(dp[i-1][0][1],dp[i-1][1][0])+C[i]);}else{dp[i][1][0]=min(dp[i][1][0],dp[i-1][1][0]+C[i]);dp[i][0][0]=min(dp[i][0][0],dp[i-1][0][0]);dp[i][0][1]=min(dp[i][0][1],min(dp[i-1][1][0],dp[i-1][0][1]));dp[i][1][1]=min(dp[i][1][1],min(dp[i-1][1][1],dp[i-1][0][0])+C[i]);}}cout<<min(dp[N-1][1][1],dp[N-1][0][1])<<endl;return 0;
}

Problem E:

直接模拟必然超时,考虑倒序(你前面最多少次都没用,会被覆盖)。然后,比方说,第x行染成1,后续进行了y次列的染色,所以这一行有x-y个颜色为1的格子。把这些记录下来即可。

int row,col;
long long H,W,M;
long long res[maxn];
map<pair<long long,long long>,bool> mp;
vector<pair<long long,long long>> ans;
struct cell{long long t;long long a;long long x;
}grid[maxn];
void work(long long t,long long a,long long x){pair<long long,long long> op={t,a};if(mp.count(op))return;mp[op]=true;if(t==1){res[x]+=W-row;++col;}else{res[x]+=H-col;++row;}	
}
int main(){cin>>H>>W>>M;for(int i=1;i<=M;i++)cin>>grid[i].t>>grid[i].a>>grid[i].x;for(int i=M;i>0;--i)work(grid[i].t,grid[i].a,grid[i].x);for(int i=1;i<=H;i++)work(1,i,0);for(int i=0;i<=200000;i++){if(res[i])ans.push_back(make_pair(i,res[i]));}cout<<ans.size()<<endl;for(auto x:ans)cout<<x.first<<' '<<x.second<<endl;
}

以上就是本期的全部内容了,我们下期再见!

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

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

相关文章

GeoAI

GeoAI 是人工智能 (AI) 与空间数据、科学和地理空间技术的集成&#xff0c;以增进对空间问题的理解和解决。GeoAI 包括应用传统人工智能技术&#xff0c;通过从结构化和非结构化数据中提取、分类和检测信息来生成空间数据。GeoAI 也是空间显式人工智能技术的使用&#xff0c;旨…

JMeter并发工具的使用

视频地址&#xff1a;Jmeter安装教程01_Jmeter之安装以及环境变量配置_哔哩哔哩_bilibili 一、JMeter是什么 JMeter是一款免安装包&#xff0c;官网下载好后直接解压缩并配置好环境变量就可以使用。 环境变量配置可参考&#xff1a;https://www.cnblogs.com/liulinghua90/p/…

C++一维数组练习oj(3)

为什么C的一维数组练习要出要做那么多的题目&#xff1f;因为我们是竞赛学生&#xff01;想要将每个知识点灵活运用的话就必须刷大量的题目来锻炼思维。 我使用的是jsswoj.com这个刷题网站&#xff0c;当然要钱... C一维数组练习oj(2)-CSDN博客这是上一次的题目讲解 这道题有…

AtCoder Beginner Contest 346 A - D

A - Adjacent Product 大意 给定一些数&#xff0c;输出它们两两之间的乘积 思路 直接模拟即可。 代码 #include <iostream> #include <vector> using namespace std; int main(){int n;cin>>n;vector<int> a(n);for(auto &x: a) cin >&g…

javase day11笔记

第十一天课堂笔记 构造代码块 { } 给 所有对象 共性特点 进行初始化操作 创建对象时在堆区对象中存放实例变量,同时执行构造代码块 执行顺序:静态代码块—>非静态代码块—>构造方法 继承★★★ 将多个类中相同的实例变量和实例方法 , 单独存放到一个类中,成为父类…

C++入门:类和对象(上)

类和对象重点解析 1.类的定义1.类的访问限定符及封装1.C实现封装的方式2.访问限定符注意 3.封装 2.类对象模型2.1类对象存储方式2.2类对象的大小2.2.1结构体内存对齐原则2.2.2为什么要内存对齐 3.this指针3.1this指针的引出3.2this指针的特性3.3this指针的存储3.4this指针可以为…

vs2019新建Qt工程中双击 .ui 文件无法打开

vs2019 中创建的 Qt 工程&#xff0c;在使用的过程中&#xff0c;经常会有&#xff1a;双击 .ui 文件&#xff0c;闪退的情况&#xff0c;也即 .ui 文件无法打开&#xff01; 针对该问题的详细解决步骤如下&#xff1a; 1、右击该 .ui 文件&#xff0c;选择“打开方式” 2、…

苍穹外卖笔记

苍穹外卖 DAY01nginx反向代理MD5加密yapi进行接口导入Swagger介绍 DAY02新增员工需求分析和设计写相关代码测试(1. 后端文档测试 2. 前后端联调代码完善 员工分页查询DAY01 02涉及到的知识 DAY01 nginx反向代理 MD5加密 拓展&#xff1a;spring security jwt 提供了更强大灵…

基于YOLOv8深度学习的橙子病害智能诊断与防治系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分类

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Java二阶知识点总结(七)SVN和Git

SVN 1、SVN和Git的区别 SVN是集中式的&#xff0c;也就是会有一个服务器保存所有代码&#xff0c;拉取代码的时候只能从这个服务器上拉取&#xff1b;Git是分布式的&#xff0c;也就是说每个人都保存有所有代码&#xff0c;如果要获取代码&#xff0c;可以从其他人手上获取SV…

Java秘笈

一、缩略 二、详版 【CDN分发】||----【跳板机】---SSH&#xff1a;(^_^) 管理员/运维Iptables【防火墙】要求&#xff1a;HA||----【等保系统】||----【蜜罐系统】【反向代理】Nginx/Lvs【静态服务器】【边际路由】要求&#xff1a;HA||Gateway/Zull【Api网关】要求&#xff1…

6. ping在windows中的常见用法

&#xff08;1&#xff09;ping简介 1.ping简介 &#xff08;2&#xff09;在windows上用法 1.直接ping 对方IP&#xff08;无参数时&#xff09; 2.ping -t IP (长ping) 3.ping -n 包数量 4.ping -l 字节大小 IP 5.如何批量的ping一个网段&#xff1f; &#xff08;1&a…