Acwing第 42 场周赛【完结】
老了,废了。该remake了。
目录
- 4311. 最小值【签到】
- 4312. 出现次数【前缀和 / KMP】
- 4313. 满二叉树等长路径【递归 / 贪心】
4311. 最小值【签到】
#include<bits/stdc++.h>
using namespace std;
int n,m;
double ans=1e9,a,b;
int main(void)
{cin>>n>>m;for(int i=0;i<n;i++) cin>>a>>b,ans=min(ans,a/b);printf("%.6lf\n",m*ans);return 0;
}
4312. 出现次数【前缀和 / KMP】
用的KMP获得位置,然后保存排序。
每次询问暴力查找,但过了r的时候break
比赛的时候想的前缀和,但是那个边界处理没想明白。
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*2+10;
int n,m,k,s[N];
char a[N],b[N];//让其下标从1开始
int ne[N];//ne[i]表示前i个字符的最长的相等的前后缀
vector<pair<int,int>>ve;
void init()
{for(int i=2,j=0;i<=n;i++){while(j&&a[i]!=a[j+1]) j=ne[j];if(a[i]==a[j+1]) j++;ne[i]=j;}for(int i=1,j=0;i<=m;i++){while(j&&b[i]!=a[j+1]) j=ne[j];if(b[i]==a[j+1]) j++;if(j==n)//求a在b出现的所有的位置{ve.push_back({i-n+1,i});j=ne[j];}}
}
int main(void)
{cin>>m>>n>>k;cin>>b+1>>a+1;init();sort(ve.begin(),ve.end());while(k--){int l,r; scanf("%d%d",&l,&r);int cnt=0;for(int i=0;i<ve.size();i++){int x=ve[i].first,y=ve[i].second;if(l<=x&&y<=r) cnt++;if(y>r) break;}printf("%d\n",cnt);}return 0;
}
前缀和做法:我们将子串的开头作为标识。
故求 [l,r] 内的子串个数等于s[r-b.size()+1]-s[l-1]
#include<bits/stdc++.h>
using namespace std;
const int N=1e5*2+10;
int n,m,k,s[N];
string a,b;
int main(void)
{cin>>m>>n>>k;cin>>a>>b;a="0"+a;for(int i=1;i<a.size();i++){s[i]=s[i-1];if(a.substr(i,b.size())==b) s[i]++;}while(k--){int l,r; scanf("%d%d",&l,&r);r=r-b.size()+1;if(r<l) cout<<0<<endl;else cout<<s[r]-s[l-1]<<endl;}return 0;
}
4313. 满二叉树等长路径【递归 / 贪心】
//递归加贪心,因为是路径和,只要父节点增加,
//对应的子节点都会增加,所以只要把每个子节点搞成相同的即可。
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int w[N],n,ans;
int dfs(int u)//子树到u的距离
{if(u>=pow(2,n+1)) return 0;int l=dfs(u*2)+w[u*2];int r=dfs(u*2+1)+w[u*2+1];ans+=abs(l-r);//俩子树弄成相同的值的花费return max(l,r);
}
int main(void)
{cin>>n;for(int i=2;i<pow(2,n+1);i++) cin>>w[i];dfs(1);cout<<ans;return 0;
}
Acwing第 42 场周赛【完结】相关推荐
- Acwing 第 95 场周赛
Powered by:NEFU AB-IN Link 文章目录 Acwing 第 95 场周赛 A AcWing 4873. 简单计算 题意 思路 代码 B AcWing 4874. 约数 题意 思路 ...
- Acwing第72场周赛+Leetcode第314场周赛
Acwing第72场周赛 第一题:AcWing 4624. 最小值 分析:向下取整可以用到math.h头文件中的floor()函数,最后输出时套用两个min()函数求三个数的最小值即可. 代码: #i ...
- AcWing——第55场周赛
AcWing--第55场周赛 竞赛 - AcWing 4479. 最长子序列 - AcWing题库 给定一个长度为 n 的序列 a1,a2,-,an 和一个长度为 m 的序列 b1,b2,-,bm. ...
- Acwing 第 91 场周赛
Powered by:NEFU AB-IN B站直播录像! Link 文章目录 Acwing 第 91 场周赛 A AcWing 4861. 构造数列 题意 思路 代码 B AcWing 4862. ...
- Acwing 第 89 场周赛
Powered by:NEFU AB-IN B站直播录像! Link 文章目录 Acwing 第 89 场周赛 A AcWing 4803. 满足的数 题意 思路 代码 B AcWing 4804. ...
- Acwing第 29 场周赛【完结】
TLE场 目录 4194. Pow[签到] 4195. 线段覆盖[离散化+差分] 4196. 最短路径[最短路] 4194. Pow[签到] https://www.acwing.com/proble ...
- Acwing第 21 场周赛【完结】
这场比赛是有史以来,最拉的一场.开始太慌了,第一题没看数据范围直接开始写.wa了四发后,才发现可以暴力. 第二题超时的模拟,规律一直没有找出来.总之,状态及其不好掉了大分.无语. 目录 3997. 整 ...
- Acwing第 39 场周赛【完结】
目录 4302. 元素分类[签到] 4303. 链表[链表] 4304. 字符串归类[并查集] 4302. 元素分类[签到] https://www.acwing.com/problem/conten ...
- Acwing第 38 场周赛【完结】
目录 4299. 删点[签到] 4300. 两种操作[BFS] 4301. 截断数列[枚举] 4299. 删点[签到] https://www.acwing.com/problem/content/4 ...
最新文章
- oracle按某个字段分组然后从每组取出最大的一条纪录
- 转-Appium—驱动和常用功能的封装
- SpringCloud Gateway 服务网关,限流
- 简单的makefile模板
- Struts2笔记——通配符和动态方法调用
- View的加载原理和拦截方式
- Fortran代码C化或Fortran与C/C++混编过程中矩阵转置的实现
- AIDA64内存与缓存测试过了算稳定吗_【AMD R52600X】装机实录、基本特性介绍及性能测试...
- FragmentActivity_左右滑动的碎片
- c#自动发送邮箱程序
- 帝国cms php循环,帝国cms 灵动标签 循环嵌套
- HTV-VIVE 连接 PC端 720云
- 【MySQL】测试题02
- 哪种蓝牙耳机好用又实惠?游戏蓝牙耳机推荐
- 1.删除链表的奇数节点 2.删除链表的偶数节点
- PLM系统在制造业的应用(下)
- discuz 模版 php函数,dz function template 函数解析
- 今天高兴,分享一个我亲自测试的网上赚钱方法......
- 燃料电池车(FCHEV)动力经济性建模与仿真
- 基于VC++的在线联机五子棋游戏设计与实现
热门文章
- 9.3 Trains and Evaluates the MNIST network using a feed dictionary
- Python2 Python3 爬取赶集网租房信息,带源码分析
- 一点点学习PS--实战四
- (转)Oracle与DB2在数据库高可用技术上的相同与差异探讨
- greenplum(一)
- 国际域名也将列入监管范畴(本文转载自【易名中国】)
- MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用
- R语言:异常数据处理
- 渲染管道(3)几何阶段一“概述”
- Crypto-Danciling line.(ascii 图像