CF-943(已更B-E)
CF- 943(已更 B-E)
D赛时没调出来(╬▔皿▔)╯,还有几分钟的时候反而把E过了,本来应该是上大分一场(⊙﹏⊙),等会会补G1
这假期要刷题,还要补文化课……后面有空的话更一下之前打的线下赛的题解
B
双指针……
void solve(){
int n,m;cin>>n>>m;
string a,b;cin>>a>>b;
int now=0,ans=0;
rep(i,0,n-1){
while(a[i]!=b[now]&&now<m) now++;
if(a[i]==b[now]){//找到的话快指针now移动,合法长度ans++
now++;
ans++;
}
if(now==m){//找不到就break
break;
}
}
cout<<ans<<endl;
C
用到了一点数学知识
分析
已知 $a_{i}%a_{i-1}=x_{i}$
则有 $(a_{i}-x_{i})|a_{i-1}$
|表示能整除
所以 $a_{i}=k*a_{i-1}+x_{i}$
但同时必有$x_{i}<a_{i-1}$,由此可以得到k的取值
代码
void solve(){
int n;cin>>n;
rep(i,2,n){
cin>>x[i];
}
a[1]=x[2]+1;//由样例可知
rep(i,2,n){
int k=1;
if(i==n){
a[i]=a[i-1]+x[i];
continue;
}
while(a[i]<=x[i+1]){
a[i]=k*a[i-1]+x[i];
k++;
}
}
rep(i,1,n){
cout<<a[i]<<" ";
}
cout<<endl;
rep(i,1,n+1){
x[i]=a[i]=0;
}
}
D
考察了循环结构、顺序结构……反正我赛时是因为这个写假了
分析
暴力枚举两人会在点now开始一直停留,此前已移动了pre次,那么之后对答案的贡献就是$a[now]*(k-pre)$,而此前移动对答案的贡献res我们可以每次移动时就更新一次,我们对其取max就是两人的最大得分
比如10 8 2 10
3 1 4 5 2 7 8 10 6 9
5 10 5 1 3 7 10 15 4 3
对于后手:
一开始now=10,pre=0,res=0,若在该点一直停留对答案的贡献为a[10]*8=24;
此后:
now=9,pre=1,res=3————3+a[9]*7=31
now=6,pre=2,res=7————7+a[6]*6=49
————14+a[7]*5=64
————24*a[8]*4=84
now=10,break;
正解代码
void solve(){
int n,k,ps,pb;cin>>n>>k>>pb>>ps;
rep(i,1,n) cin>>p[i];
rep(i,1,n) cin>>a[i];
int aa=0,bb=0;
if(p[pb]==pb) aa=k*a[pb];
if(p[ps]==ps) bb=k*a[ps];
int now=pb,pre=0,res=0;
while(1){
if(pre<=k){
aa=max(aa,res+a[now]*(k-pre));
}
res+=a[now];
now=p[now];
if(now==pb) break;
pre++;
}
now=ps,pre=0,res=0;
while(1){
if(pre<=k){
bb=max(bb,res+a[now]*(k-pre));
}
res+=a[now];
now=p[now];
if(now==ps) break;
pre++;
}
if(aa>bb){
cout<<"Bodya";
}
else if(aa<bb){
cout<<"Sasha";
}
else{
cout<<"Draw";
}
cout<<endl;
贴一个赛时样例都过不了的假写法,虽然思路是一样的(╬▔皿▔)╯
int now=pb,pre=0,res=0;
//cout<<now<<" "<<p[now]<<endl;
while(p[now]!=pb){//实际上p[now]=pb就跳出了
//cout<<now<<" "<<p[now]<<" "<<res<<endl;
if(pre<=k){
aa=max(aa,res+a[now]*(k-pre));
}
//else break;
//cout<<aa<<" "<<" "<<pre<<" "<<now<<" "<<res<<endl;
res+=a[now];
now=p[now];
pre++;
}
now=ps,pre=0,res=0;
while(p[now]!=ps){
if(pre<=k){
bb=max(bb,res+a[now]*(k-pre));
}
//else break;
//cout<<bb<<" "<<" "<<pre<<" "<<now<<" "<<res<<endl;
res+=a[now];
now=p[now];
pre++;
}
cout<<aa<<" "<<bb<<endl;
E
万恶的构造题
void solve(){
int n;cin>>n;
if(n==2){
cout<<"1 1"<<endl<<"2 2"<<endl<<endl;
return;
}
rep(i,1,n-2){
cout<<"1 "<<i<<endl;
}
cout<<n-1<<" 1"<<endl;
cout<<n<<" "<<n<<endl<<endl;
}
G1
CF-943(已更B-E)的更多相关文章
- [Recommendation System] 推荐系统之协同过滤(CF)算法详解和实现
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
- CF(协同过滤算法)
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
- 协同过滤(CF)算法
1 集体智慧和协同过滤 1.1 什么是集体智慧(社会计算)? 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web ...
- 【转载】协同过滤 & Spark机器学习实战
因为协同过滤内容比较多,就新开一篇文章啦~~ 聚类和线性回归的实战,可以看:http://www.cnblogs.com/charlesblc/p/6159187.html 协同过滤实战,仍然参考:h ...
- Collaborative Filtering(协同过滤)算法详解
基本思想 基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分.根据不同用户对相同商品或内容的态度和偏好程度计算用户 ...
- AppBoxFuture: Raft快照及日志截断回收
AppBoxFuture的存储引擎依赖Raft一致性协议来保证各个分区副本的一致性,如果不处理Raft日志将不断增长,因此需要特定的机制(定期或每处理一定数量的日志)来回收那些无用的日志数据.通过 ...
- 600 条最强 Linux 命令总结
600 条最强 Linux 命令总结 每博一文案 你有千万条微博想写,可有些根本不重要,后来你才懂那是你怕别人看穿你所以才把真话埋在日常里.你有千万句话想说,可点开那 个对话框,你根本打不出一个字.你 ...
- 【20161203-20161208】清华集训2016滚粗记&&酱油记&&游记
先挖坑(这个blog怎么变成游记专用了--) 已更完 #include <cstdio> using namespace std; int main(){ puts("转载请注明 ...
- MariaDB kill命令
MariaDB的KILL命令不只可以杀掉连接,而且可以只杀掉某连接当前的SQL,而不断开连接.KILL QUERY thread_id;kill thread_id可以杀掉当前的连接,而kill QU ...
- mysql5.5手册读书日记(3)
<?php /* MySQL_5.5中文参考手册 587开始 与GROUP BY子句同时使用的函数和修改程序 12.10.1. GROUP BY(聚合)函数 12.10.2. GROUP BY修 ...
随机推荐
- FPGA的PCB设计
FPGA的PCB设计 一.FPGA的高速电路板设计 PCB板的设计规模增大,IO传输问题也就出现.为了兼容其他高速模块,必须对PCB的设计进行优化. 1️⃣电源滤波,降低系统噪声2️⃣匹配信号线3️⃣ ...
- KingbaseES 统计信息收集器没有响应问题分析
统计信息收集器没有响应/Stats collector is not responding 问题现象: kingbase数据库日志提示:统计信息收集器没有响应/Stats collector is n ...
- P图神器Lama下载介绍,一键移除图片中任何不想要的元素
Lama是一个完全自托管的图像处理工具,基于最前沿的AIGC模型,它可以从图片中删除任何不需要的物体.缺陷或对象,却看不到一点修改痕迹~ 在以前,我们想将图片中的文字.水印去除,可以使用ps,但ps的 ...
- #二分图匹配#洛谷 5771 [JSOI2016]反质数序列
题目 给出 \(n\) 个正整数,问最大的子集使得任意两个数的和都不是质数 \(n\leq 3*10^3\) 分析 如果把两个数的和为质数连边,等价于求最大独立集. 由于只有偶数加奇数才可能产生质数( ...
- HTTP协议安全头部的笔记
本文于2016年3月完成,发布在个人博客网站上. 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来. 近日项目组对当前开发.维护的Web系统做了AppScan扫描,扫描的结 ...
- OpenHarmony嵌套类对象属性变化:@Observed装饰器和@ObjectLink装饰器
上文所述的装饰器仅能观察到第一层的变化,但是在实际应用开发中,应用会根据开发需要,封装自己的数据模型.对于多层嵌套的情况,比如二维数组,或者数组项class,或者class的属性是class,他们的第 ...
- SQL DELETE 语句:删除表中记录的语法和示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句的使用
SQL DELETE 语句 SQL DELETE 语句用于删除表中的现有记录. DELETE 语法 DELETE FROM 表名 WHERE 条件; 注意:在删除表中的记录时要小心!请注意DELETE ...
- HR必备|可视化大屏助HR实现人才资源价值最大化
人力资源管理质量的优劣关系到企业可持续发展目标的实现,在信息化时代背景下,应用信息技术加强人力资源管理过程的优化,利用技术提升人力资源管理质量和效率已是大势所趋. 利用信息技术构建信息化人力资源管理平 ...
- js 如何实现管道或者说组合
前言 概念:管道是从左往右函数执行,组合是从右往左执行. 实现 原理与作用后续补齐. function compose(...funcs) { return function(x) { funcs.r ...
- sql 语句系列(行与列处理)[八百章之第一章]
排序时对null进行处理 比如说: select * from EMP order by COMM 我需要对红框部分进行desc处理,也就是从大到小排列. 解析: 重点是如何让null独立出去. se ...