B. Digital root

题意:

题目定义了x的digital root是S(x)。S(5)=5,S(38)=S(3+8=11)=S(1+1+2)=2.

有n个询问,每次询问给出ki和xi,要你求出digital root为xi的整数中,第k大的是什么。

题解:

观察可以发现,x的digital S(x) 在模9下同余。也就是x mod 9 = S(x).发现这一点以后答案就很显然了。

 #include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream> using namespace std;
typedef long long LL;
typedef unsigned long long ull;
int n,x;
LL k;
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%I64d%d",&k,&x);
ull res=x+(k-)*;
printf("%I64u\n",res);
}
return ;
}

C. Brutality

 #include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
typedef long long LL;
const int maxn=2e5+;
int n,k;
int a[maxn];
char s[maxn]; int main(){
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
}
scanf("%s",s+);
priority_queue<int,vector<int>,greater<int> >q;
LL ans=;
LL sum=;
int num=;
for(int i=;i<=n;i++){
if(s[i]==s[i-]){
num++;
sum+=a[i];
q.push(a[i]);
if(num>k){
sum-=q.top();
// printf("!%d\n",q.top());
q.pop();
}
}else{
// printf("%d %d\n",i,ans);
ans+=sum;
num=;
sum=a[i];
while(!q.empty())q.pop();
q.push(a[i]);
}
} ans+=sum;
printf("%I64d\n",ans);
return ;
}

D. Compression

题意:

题目给出一个n*n的01矩阵,定义一个x-compression矩阵B,大小为n/x*n/x。使得A[i][j]=B[ceil(i/x)][ceil(j/x)]。显然当n能被x整除时才可能有B矩阵,但是这还不够,请你求出存在B时最大的x是多少。

留坑!

E. Vasya and Binary String

题意:

有一个长度为n的01序列,V要进行以下操作直到序列为空,选则一段连续的都是0或者都是1的子序列删除,然后合并两边剩余的序列。V每次删除一段长度为x的子序列就会得到a[x]分。V希望让得分最高,需要你来帮他!n<=100.

题解:我感觉是好题!

设f[i][j][k]为从i到j全部删除,i包括i前面有k个和i相同的。转移有两种:

1.把第i个和前面相同的一起删除。a[k]+f[i+1][j][1].

2.也可以枚举一个l,当第l个数字等于第i个数字的时候,先把i+1到l-1消掉,然后把第i个和第l个合并到一起。f[i+1][l-1][1]+f[l][j][k+1]。

 #include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
typedef long long LL;
const int maxn=+;
int n;
char s[maxn];
int a[maxn];
LL g[maxn];
LL f[maxn][maxn][maxn];
LL dp(int l,int r,int k){
if(f[l][r][k])return f[l][r][k];
if(l>r)return ;
f[l][r][k]=dp(l+,r,)+g[k];
for(int i=l+;i<=r;i++){
if(s[i]==s[l]){
f[l][r][k]=max(f[l][r][k],dp(l+,i-,)+dp(i,r,k+));
}
}
return f[l][r][k];
} int main(){
scanf("%d",&n);
scanf("%s",s+);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
g[i]=a[i];
}
for(int i=;i<=n;i++){
for(int j=;j<i;j++){
g[i]=max(g[i],g[i-j]+g[j]);
}
}
LL res=dp(,n,);
printf("%I64d\n",res); return ;
}

F. Vasya and Endless Credits

题意:

V想要买一辆车,但是他自己一分钱也没有,于是他打算办一些信用卡。有n张信用卡可以选择,每张信用卡用ai,bi,ki来描述。银行会在开始的那个月初给V ai元钱,然后在之后的ki个月(包括开始的那个月)每个月的月末V要还bi元钱。每张信用卡只能用一次,V会在某个月的中间来买车,他能买车的价格为当前手里钱的总数,问V能买的车价格的最大值是多少?

题解:

二分图最大权匹配。假设我们已经知道在哪一天结束。那么左边的点为第i个贷款,右边的点为在倒数第i天贷款,那么左边每个点都要往右边连边,边权为a[i]-min(k,j)*b[i].然后这个题用费用流跑会T?

代码留坑。

G. Vasya and Maximum Profit

题意:

V决定办一场比赛来赚钱。有n个问题可以选择,第i个问题的难度为di,题目是按照难度递增的顺序给出的,且题目的难度各不相同。如果选择第i个问题,V需要付给作者ci元钱。对于比赛的每一道题,V可以获得a元钱。V需要从题目中选择连续的一段。如果V选择的一段是(l,r),那么还要支付gap(l,r)=max(di+1-di)^2.如果l=r,那么gap=0.请你帮忙计算V能获得的最大收益是多少。

题解:

待补···

(我这套刷了个P啊)

Educational Codeforces Round 59的更多相关文章

  1. Educational Codeforces Round 59 (Rated for Div. 2) DE题解

    Educational Codeforces Round 59 (Rated for Div. 2) D. Compression 题目链接:https://codeforces.com/contes ...

  2. Educational Codeforces Round 59 (Rated for Div. 2) E 区间dp + 状态定义 + dp预处理(分步dp)

    https://codeforces.com/contest/1107/problem/E 题意 给出01字符串s(n<=100),相邻且相同的字符可以同时消去,一次性消去i个字符的分数是\(a ...

  3. C. Brutality Educational Codeforces Round 59 (Rated for Div. 2) 贪心+思维

    C. Brutality time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  4. Educational Codeforces Round 59 Solution

    A. Digits Sequence Dividing 签. #include <bits/stdc++.h> using namespace std; #define N 1010 ch ...

  5. Educational Codeforces Round 59 (Rated for Div. 2)

    熬夜爆肝,智商急剧下降 坐标UTC+8晚上23:35开始 晚上脑袋转的慢,非常慢 T1上来先做还花了好几分钟 T2本来是有式子的我TM写数位DP写炸了然后才发现是有公式 T3英语不好,一开始题意没读懂 ...

  6. 【考试记录】Educational Codeforces Round 59 (Rated for Div. 2)

    本来准备划水,结果被垃圾题艹翻了…… T2题意: 定义一个数$x$的数字根$S(x)$为:将其各位数字相加得到一个新数,再将新数的数字和相加直到得到一个个位数,就是该数的数字根. 例如:$S(38)= ...

  7. Educational Codeforces Round 59 (Rated for Div. 2) (前四题)

    A. Digits Sequence Dividing(英文速读) 练习英语速读的题,我还上来昏迷一次....只要长度大于2那么一定可以等于2那么前面大于后面就行其他no 大于2的时候分成前面1个剩下 ...

  8. [Educational Codeforces Round 16]E. Generate a String

    [Educational Codeforces Round 16]E. Generate a String 试题描述 zscoder wants to generate an input file f ...

  9. [Educational Codeforces Round 16]D. Two Arithmetic Progressions

    [Educational Codeforces Round 16]D. Two Arithmetic Progressions 试题描述 You are given two arithmetic pr ...

随机推荐

  1. 发邮件 文字+ 附件的方法(QQ or 网易 邮箱)

    #coding:utf-8import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIME ...

  2. sikuli 安装

    1     简介 官方介绍: Sikuli脚本自动化,你在屏幕上看到的任何东西.它使用图像识别,识别和控制GUI组件.这是有用的,当有一个GUI的内部或源代码的访问是不容易的. Sikuli(在墨西哥 ...

  3. 执行Chrome自动化时--正在受到自动软件的控制的显示屏蔽

    用selenium启动,浏览器出现‘Chrome正在受到自动软件的控制’ 屏蔽的方法: # coding:utf-8 from selenium import webdriver # 加启动配置 op ...

  4. 学习笔记之.NET Core

    source code https://github.com/haotang923/dotnet/tree/master/src .NET Documentation | Microsoft Docs ...

  5. COMMON INTERVIEW QUESTIONS

    1. What do you see yourself doing five years from now? 2. What motivates you to put forth your great ...

  6. 关于跨域读取json数据我的理解

    这两天在做关于读取json数据的插件,想用getJSON读取数据: $.getJSON(http://www.xxxx.com/Titles.js, function (data) { console ...

  7. tsql 循环id读取

    declare @IDList as varchar(max) declare @ID as int declare @i as int set @IDList='' )) + ',' from ta ...

  8. 自己写的jQuery放大镜插件效果(二)(采用只有一张图片的思路)

    废话不多说,先看效果图,和上一章节用的是同一个小图片: 这个方法实现的放大有个弊端就是放大倍数设置的过大的话,会带来图片上的模糊.但是图片加载的话要比使用2张图片加载的快很多 插件代码: ; (fun ...

  9. ffmpeg同步

    1:ffmpeg解码流程 拆包,构建队列,解码,同步,显示 //计算视频Frame的显示时间//获取ptspts = 0;//decodec video frameavcodec_decode_vid ...

  10. 哈希与位图(Hash and BitMap)

    Hash:哈希机制 BitMap:位图机制 目的:都是为了保证检索方便而设置的数据结构 对于大数据进行排序,由于内存限制,不可能在内存中进行,所以采取BitMap机制 为了在大数据中快速检索以及操作数 ...