这套题最后一题不会,然后先放一下,最后一题应该是大数据结构题

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 套题相关推荐

  1. Educational Codeforces Round 103 (Rated for Div. 2)前四题

    Educational Codeforces Round 103 (Rated for Div. 2) 第二次被别人hack,悲 A - K-divisible Sum 题意 给定两个整数 n,kn, ...

  2. 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< ...

  3. 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|+⋯+ ...

  4. Educational Codeforces Round 76 (Rated for Div. 2) 题解

    Educational Codeforces Round 76 题解 比赛链接 A. Two Rival Students #include<bits/stdc++.h> using na ...

  5. 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,-, ...

  6. Educational Codeforces Round 112(Div.2) ABC题解

    D题好像可以做一做,挖个坑以后做好了来填(doge Educational Codeforces Round 112(Div.2) 题目列表 1.A 2.B 3.C 1.A 原题链接 题目大意 有三种 ...

  7. Educational Codeforces Round 36 (Rated for Div. 2) 题解

    Educational Codeforces Round 36 (Rated for Div. 2) 题目的质量很不错(不看题解做不出来,笑 Codeforces 920C 题意 给定一个\(1\)到 ...

  8. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...

  9. Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...

最新文章

  1. python format 格式化字符串
  2. 图形化的Redis监控系统redis-stat安装
  3. AI发展这一年:不断衍生的技术丑闻与抵制声潮
  4. 利用OpenCV实现图像修复(含源码链接)
  5. R语言因子分析FA(factor analysis)实战案例
  6. 【计算理论】计算复杂性 ( coNP 问题 | coNP 完全 | P、NP、coNP 相互关系 )
  7. df命令---Linux学习笔记
  8. dncnn图像去噪_一种基于DnCNNs改进的图像降噪方法与流程
  9. HDU1856More is better(并查集)
  10. 函数名的使用、闭包、生成器
  11. java 动态树_使用dtree构建动态树型菜单
  12. 少年Vince之遐想
  13. css transition transform animation例子讲解
  14. 三大器之------生成器
  15. 合并两个LMDB文件
  16. sspanel 常用审计规则
  17. 一个介绍实用软件及技巧的独立博客-善用佳软
  18. 计算机功能转动怎么设定,怎么旋转电脑屏幕
  19. 百度百科里的个人介绍是怎么做上去的,人物百度百科词条创建
  20. [hadoop3.x]HDFS中的内存存储支持(七)概述

热门文章

  1. Nature官方劝退读博:全球七成博士对前途迷茫
  2. 深度学习(七十二)ssd物体检测
  3. 深度学习(三十七)优化求解系列之(1)简单理解梯度下降
  4. Python-cvxopt库的使用(1)(解决LP问题)
  5. 自动驾驶中的滞后碰撞检测(lazy-collision-checking)
  6. 重采样和重分类的区别
  7. 虚拟机安装mysql_linux虚拟机中安装MySQL
  8. 字符串输出为什么第一个没了_「课堂笔记」Python基础语法:变量和输入输出
  9. es Failed: 1: this action would add [2] total shards, but this cluster currently has [1001]/[1000]
  10. 计算机组成原理闭卷,《计算机组成原理》试卷A (闭卷)