老了,废了。该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 场周赛【完结】相关推荐

  1. Acwing 第 95 场周赛

    Powered by:NEFU AB-IN Link 文章目录 Acwing 第 95 场周赛 A AcWing 4873. 简单计算 题意 思路 代码 B AcWing 4874. 约数 题意 思路 ...

  2. Acwing第72场周赛+Leetcode第314场周赛

    Acwing第72场周赛 第一题:AcWing 4624. 最小值 分析:向下取整可以用到math.h头文件中的floor()函数,最后输出时套用两个min()函数求三个数的最小值即可. 代码: #i ...

  3. AcWing——第55场周赛

    AcWing--第55场周赛 竞赛 - AcWing 4479. 最长子序列 - AcWing题库 给定一个长度为 n 的序列 a1,a2,-,an 和一个长度为 m 的序列 b1,b2,-,bm. ...

  4. Acwing 第 91 场周赛

    Powered by:NEFU AB-IN B站直播录像! Link 文章目录 Acwing 第 91 场周赛 A AcWing 4861. 构造数列 题意 思路 代码 B AcWing 4862. ...

  5. Acwing 第 89 场周赛

    Powered by:NEFU AB-IN B站直播录像! Link 文章目录 Acwing 第 89 场周赛 A AcWing 4803. 满足的数 题意 思路 代码 B AcWing 4804. ...

  6. Acwing第 29 场周赛【完结】

    TLE场 目录 4194. Pow[签到] 4195. 线段覆盖[离散化+差分] 4196. 最短路径[最短路] 4194. Pow[签到] https://www.acwing.com/proble ...

  7. Acwing第 21 场周赛【完结】

    这场比赛是有史以来,最拉的一场.开始太慌了,第一题没看数据范围直接开始写.wa了四发后,才发现可以暴力. 第二题超时的模拟,规律一直没有找出来.总之,状态及其不好掉了大分.无语. 目录 3997. 整 ...

  8. Acwing第 39 场周赛【完结】

    目录 4302. 元素分类[签到] 4303. 链表[链表] 4304. 字符串归类[并查集] 4302. 元素分类[签到] https://www.acwing.com/problem/conten ...

  9. Acwing第 38 场周赛【完结】

    目录 4299. 删点[签到] 4300. 两种操作[BFS] 4301. 截断数列[枚举] 4299. 删点[签到] https://www.acwing.com/problem/content/4 ...

最新文章

  1. oracle按某个字段分组然后从每组取出最大的一条纪录
  2. 转-Appium—驱动和常用功能的封装
  3. SpringCloud Gateway 服务网关,限流
  4. 简单的makefile模板
  5. Struts2笔记——通配符和动态方法调用
  6. View的加载原理和拦截方式
  7. Fortran代码C化或Fortran与C/C++混编过程中矩阵转置的实现
  8. AIDA64内存与缓存测试过了算稳定吗_【AMD R52600X】装机实录、基本特性介绍及性能测试...
  9. FragmentActivity_左右滑动的碎片
  10. c#自动发送邮箱程序
  11. 帝国cms php循环,帝国cms 灵动标签 循环嵌套
  12. HTV-VIVE 连接 PC端 720云
  13. 【MySQL】测试题02
  14. 哪种蓝牙耳机好用又实惠?游戏蓝牙耳机推荐
  15. 1.删除链表的奇数节点 2.删除链表的偶数节点
  16. PLM系统在制造业的应用(下)
  17. discuz 模版 php函数,dz function template 函数解析
  18. 今天高兴,分享一个我亲自测试的网上赚钱方法......
  19. 燃料电池车(FCHEV)动力经济性建模与仿真
  20. 基于VC++的在线联机五子棋游戏设计与实现

热门文章

  1. 9.3 Trains and Evaluates the MNIST network using a feed dictionary
  2. Python2 Python3 爬取赶集网租房信息,带源码分析
  3. 一点点学习PS--实战四
  4. (转)Oracle与DB2在数据库高可用技术上的相同与差异探讨
  5. greenplum(一)
  6. 国际域名也将列入监管范畴(本文转载自【易名中国】)
  7. MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用
  8. R语言:异常数据处理
  9. 渲染管道(3)几何阶段一“概述”
  10. Crypto-Danciling line.(ascii 图像