Educational Codeforces Round 15 套题
这套题最后一题不会,然后先放一下,最后一题应该是大数据结构题
A:求连续最长严格递增的的串,O(n)简单dp
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <queue> #include <vector> using namespace std; typedef long long LL; const int N = 1e5+5; const int INF = 0x3f3f3f3f; int n,dp[N],a[N],cnt,mx; int main(){scanf("%d",&n);a[0]=INF;for(int i=1;i<=n;++i){scanf("%d",&a[i]);dp[i]=1;if(a[i]>a[i-1])dp[i]=dp[i-1]+1;mx=max(mx,dp[i]);}printf("%d\n",mx);return 0; }
View Code
B:水题,map乱搞
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <map> #include <queue> #include <vector> using namespace std; typedef long long LL; const int N = 1e5+5; const int INF = 2e9; map<int,int>mp; int a[40],cnt; int main(){ for(int i=0;;++i){if((1ll<<i)>INF)break;a[++cnt]=(1<<i);}LL ret=0;int x,n;scanf("%d",&n);for(int i=1;i<=n;++i){scanf("%d",&x);for(int j=cnt;j>0;--j){if(a[j]<=x)break;int tmp=a[j]-x;if(mp.find(tmp)!=mp.end())ret+=mp[tmp];}if(mp.find(x)==mp.end())mp[x]=0;++mp[x];}printf("%I64d\n",ret);return 0; }
View Code
C:一个典型的二分题,judge如何判断全被覆盖?只要用一下离线求和数组非0就好
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <map> #include <queue> #include <vector> using namespace std; typedef long long LL; const int N = 1e5+5; const int INF = 2e9; LL a[N],b[N]; int n,m,c[N]; bool judge(LL r){memset(c,0,sizeof(c));for(int i=1;i<=m;++i){int x=lower_bound(a+1,a+1+n,b[i]-r)-a;int y=upper_bound(a+1,a+1+n,b[i]+r)-a;++c[x];--c[y];}for(int i=1;i<=n;++i){c[i]+=c[i-1];if(!c[i])return false;}return true; } int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;++i)scanf("%I64d",&a[i]);sort(a+1,a+1+n);n=unique(a+1,a+1+n)-a-1;for(int i=1;i<=m;++i)scanf("%I64d",&b[i]);sort(b+1,b+1+m);m=unique(b+1,b+1+m)-b-1;LL l=0,r=INF;while(l<r){LL mid=(l+r)>>1;if(judge(mid))r=mid;else l=mid+1;}printf("%I64d\n",(l+r)>>1);return 0; }
View Code
D:一个简单的分类讨论,因为最多走k,以k为周期即可
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <map> #include <queue> #include <vector> using namespace std; typedef long long LL; const int N = 1e5+5; const int INF = 2e9; LL d,k,a,b,t; int main(){scanf("%I64d%I64d%I64d%I64d%I64d",&d,&k,&a,&b,&t);if(d<=k){printf("%I64d\n",d*a);return 0;}LL ret=k*a;d-=k;if(d<=k){ret+=min(d*a+t,d*b);printf("%I64d\n",ret);return 0;}LL t1=k*a+t,t2=k*b;if(t2<=t1){printf("%I64d\n",ret+d*b);return 0;}else {ret+=d/k*t1;d-=d/k*k;if(d==0){printf("%I64d\n",ret);return 0;}t1=t+d*a,t2=d*b;ret+=min(t1,t2);printf("%I64d\n",ret);}return 0; }
View Code
E:求从每个点出发路径长度为k的边权和以及边权最小值,刚开始还以为是快速幂,结果发现发现这条路唯一确定,直接倍增即可
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <map> #include <queue> #include <vector> using namespace std; typedef long long LL; const int N = 1e5+5; const int INF = 2e9; struct Node{int v,mn;LL sum; }f[N][40]; LL retsum[N],k; int n,retmin[N],cur[N]; void solve(){for(int j=0;(1ll<<j)<=k;++j)if(k&(1ll<<j)){for(int i=0;i<n;++i){retsum[i]+=f[cur[i]][j].sum;if(retmin[i]==-1)retmin[i]=f[cur[i]][j].mn;else retmin[i]=min(retmin[i],f[cur[i]][j].mn);cur[i]=f[cur[i]][j].v;} }for(int i=0;i<n;++i)printf("%I64d %d\n",retsum[i],retmin[i]); } int main(){scanf("%d%I64d",&n,&k);for(int i=0;i<n;++i)scanf("%d",&f[i][0].v),cur[i]=i,retmin[i]=-1;for(int i=0;i<n;++i)scanf("%d",&f[i][0].mn),f[i][0].sum=f[i][0].mn;for(int j=1;(1ll<<j)<=k;++j){for(int i=0;i<n;++i){f[i][j].v=f[f[i][j-1].v][j-1].v;f[i][j].sum=f[i][j-1].sum+f[f[i][j-1].v][j-1].sum;f[i][j].mn=min(f[i][j-1].mn,f[f[i][j-1].v][j-1].mn);}}solve();return 0; }
View Code
F:不会,看了看别人的代码,并不能看懂,还是太弱
转载于:https://www.cnblogs.com/shuguangzw/p/5721100.html
Educational Codeforces Round 15 套题相关推荐
- Educational Codeforces Round 103 (Rated for Div. 2)前四题
Educational Codeforces Round 103 (Rated for Div. 2) 第二次被别人hack,悲 A - K-divisible Sum 题意 给定两个整数 n,kn, ...
- Educational Codeforces Round 73 (Rated for Div. 2) E. Game With String 思维博弈 好题(2500)
传送门 文章目录 题意: 思路: 题意: 思路: 我们将每一段...拿出来看成若干段,将其分成以下四种情况: (1)len<b(1)len<b(1)len<b (2)b≤len< ...
- Educational Codeforces Round 126 (Rated for Div. 2)(A-E)
A-Array Balancing 题意:给定两个数组a,b,a数组第i个数可以和b数组的第i个数交换,最终求 a1−a2|+|a2−a3|+⋯+|an−1−an||a1−a2|+|a2−a3|+⋯+ ...
- Educational Codeforces Round 76 (Rated for Div. 2) 题解
Educational Codeforces Round 76 题解 比赛链接 A. Two Rival Students #include<bits/stdc++.h> using na ...
- Educational Codeforces Round 104 (Rated for Div. 2) A,B,C,D,E
Educational Codeforces Round 104 (Rated for Div. 2) A,B,C,D,E A - Arena 题意 nnn 个英雄,他们的等级分别是 a1,a2,-, ...
- Educational Codeforces Round 112(Div.2) ABC题解
D题好像可以做一做,挖个坑以后做好了来填(doge Educational Codeforces Round 112(Div.2) 题目列表 1.A 2.B 3.C 1.A 原题链接 题目大意 有三种 ...
- Educational Codeforces Round 36 (Rated for Div. 2) 题解
Educational Codeforces Round 36 (Rated for Div. 2) 题目的质量很不错(不看题解做不出来,笑 Codeforces 920C 题意 给定一个\(1\)到 ...
- Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...
- Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...
最新文章
- python format 格式化字符串
- 图形化的Redis监控系统redis-stat安装
- AI发展这一年:不断衍生的技术丑闻与抵制声潮
- 利用OpenCV实现图像修复(含源码链接)
- R语言因子分析FA(factor analysis)实战案例
- 【计算理论】计算复杂性 ( coNP 问题 | coNP 完全 | P、NP、coNP 相互关系 )
- df命令---Linux学习笔记
- dncnn图像去噪_一种基于DnCNNs改进的图像降噪方法与流程
- HDU1856More is better(并查集)
- 函数名的使用、闭包、生成器
- java 动态树_使用dtree构建动态树型菜单
- 少年Vince之遐想
- css transition transform animation例子讲解
- 三大器之------生成器
- 合并两个LMDB文件
- sspanel 常用审计规则
- 一个介绍实用软件及技巧的独立博客-善用佳软
- 计算机功能转动怎么设定,怎么旋转电脑屏幕
- 百度百科里的个人介绍是怎么做上去的,人物百度百科词条创建
- [hadoop3.x]HDFS中的内存存储支持(七)概述
热门文章
- Nature官方劝退读博:全球七成博士对前途迷茫
- 深度学习(七十二)ssd物体检测
- 深度学习(三十七)优化求解系列之(1)简单理解梯度下降
- Python-cvxopt库的使用(1)(解决LP问题)
- 自动驾驶中的滞后碰撞检测(lazy-collision-checking)
- 重采样和重分类的区别
- 虚拟机安装mysql_linux虚拟机中安装MySQL
- 字符串输出为什么第一个没了_「课堂笔记」Python基础语法:变量和输入输出
- es Failed: 1: this action would add [2] total shards, but this cluster currently has [1001]/[1000]
- 计算机组成原理闭卷,《计算机组成原理》试卷A (闭卷)