Codeforces Round #486 (Div. 3)

E. Divisibility by 25

能被25整除的充要条件就是末两位是00,25,50,75。如果没有过程中不出现前导0这一限制,显然对每种情况,贪心取尽量低位即可。本题的关键就在于如何满足这个条件,首先有个”显然”的方法:讨论。。。然后会发现情况太多,过于复杂。所以,我们只好从交换本身的性质入手,找找易于实现的写法。注意到我们最多移动3个数字的位置,最终两个最低位的数,可能还有一个非0数作为最高位,而根据交换的性质,可以发现先移动那个数对于最终的结果没有影响,按照题意我们要先移动那个作为最高位的数,那现在既然调换顺序没有影响,不如把那个数留到最后再交换。于是,这道题的做法就出来了:1)贪心模拟,确定最低两位2)贪心模拟,确定最高位3)检查最后两位是否合法。

#include <bits/stdc++.h>
typedef long long ll;
const int inf = 0x3f3f3f3f;
using namespace std;
int n;
char s[22],tmp[22];
int solve(char a, char b) {int p=n-1, ans=0;for(p;p>=0;--p)if(s[p]==b)break;if(p==-1)return inf;for(int i=p+1;i<n;++i)swap(s[i],s[i-1]),++ans;p=n-2;for(p;p>=0;--p)if(s[p]==a)break;if(p==-1)return inf;for(int i=p+1;i<n-1;++i)swap(s[i],s[i-1]),++ans;for(p=0;p<n;++p)if(s[p]!='0')break;for(;p>=1;--p)swap(s[p],s[p-1]),++ans;if(s[n-2]==a&&s[n-1]==b) return ans;return inf;
}
int main() {scanf(" %s",s);memcpy(tmp,s,sizeof(s));n=strlen(s);int ans = inf;ans = min(ans,solve('7','5'));memcpy(s,tmp,sizeof(tmp));ans = min(ans,solve('2','5'));memcpy(s,tmp,sizeof(tmp));ans = min(ans,solve('5','0'));memcpy(s,tmp,sizeof(tmp));ans = min(ans,solve('0','0'));printf("%d\n",(ans==inf)?-1:ans);return 0;
}

F. Rain and Umbrellas

dp[i]表示到位置i的最小疲劳度。下面考虑转移,如果[i-1,i]不下雨dp[i]=dp[i-1],即把所有伞扔掉走过来最小;如果[i-1,i]下雨怎么办呢?首先,不可能出现同时拿两把伞的情况,因为一定不会比同时拿一把优,那就只需要枚举上一把伞是哪一把就行了,dp[i] = min(dp[j]+(i-j)*w[j]) (j<i)。注意:一个位置可能有多把伞。

#include <bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;++i)
typedef long long ll;
const ll inf = 1e9+7;
const int N = 2000 + 50;
using namespace std;
int min(int a,int b){if(a==-1)return b;if(b==-1)return a;if(a<b)return a;return b;
}
int a, n, m, rn[N];
ll dp[N], w[N];
int main() {scanf("%d%d%d",&a,&n,&m);rep(i,0,a) w[i]=-1;rep(i,1,n) {int l, r;scanf("%d%d",&l,&r);rep(j,l+1,r) rn[j] = 1;}rep(i,1,m) {int x, p;scanf("%d%d",&x,&p);w[x]=min(w[x],p);}dp[0]=0;rep(i,1,a){dp[i]=inf;if(!rn[i]){dp[i] = dp[i-1];}else {rep(j,0,i-1) if(w[j]!=-1) {dp[i] = min(dp[i], dp[j]+1LL*(i-j)*w[j]);}}if(dp[i]==inf) return puts("-1"),0;}cout << dp[a] <<'\n';return 0;
}

 

转载于:https://www.cnblogs.com/RRRR-wys/p/9124283.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#:如何将坏的代码重新编译为好的代码

自己的前言说明&#xff1a;本文原作者&#xff1a;Radoslaw Sadowski&#xff0c;原文链接为&#xff1a;C# BAD PRACTICES: Learn how to make a good code by bad example。本系列还有其他文章&#xff0c;后续将慢慢翻译。引言&#xff1a;我的名字叫Radoslaw Sadowski&…

P6855-「EZEC-4.5」走方格【dp】

正题 题目链接:https://www.luogu.com.cn/problem/P6855 题目大意 n∗mn*mn∗m的网格&#xff0c;每个格子有一个数&#xff0c;可以选择一个位置变为000。要求最小化最大权值和路径。 解题思路 考虑枚举哪个位置变为000&#xff0c;一个位置变为000后我们将路径分为两种路径…

【搜索树】高级打字机(luogu 1383)

高级打字机 luogu 1383 题目大意&#xff1a; 有三种操作&#xff1a;添加一个字符&#xff08;更改操作&#xff09;&#xff0c;撤回前iii步步更改操作&#xff08;更改操作&#xff0c;可以撤回自己&#xff09;&#xff0c;输出某一位的字符&#xff0c;现在要按要求输出…

AtCoder Grand Contest 025

B.RGB Coloring 绿色可以看作拿红和蓝都涂了&#xff0c;那么只需要满足A*a B*b K && 0 ≤ a,b ≤ n&#xff0c;答案加上C(n,a)*C(n,b) #include <bits/stdc.h> typedef long long ll; const ll mod 998244353; const int N 300000 100; using namespace s…

走进 Cake for .NET

一、什么是 CakeCake&#xff08;C# Make&#xff09; 是一个使用 C# DSL 面向 Task 的跨平台构建自动化系统&#xff0c;像编译代码&#xff0c;复制文件和文件夹&#xff0c;运行单元测试&#xff0c;压缩文件和构建 NuGet 包。更多内容请访问官网二、使用 Cake先尝试一下 P…

jzoj4616-[NOI2016模拟7.12]二进制的世界【平衡规划,dp】

正题 题目大意 nnn个数&#xff0c;对于每个数找左边的一个数执行optoptopt操作使得答案最大&#xff0c;并且求有多少个数能够使得最大。 解题思路 我们设fi,jf_{i,j}fi,j​表示下一个数的后888位为iii&#xff0c;当前数的前888位为jjj时的最大后888位的答案。然后每次用fi,…

Wannafly挑战赛17

剩下的不太会就没接着打了&#xff0c;没有注意到比赛截至时间&#xff0c;好像提前了几分钟公开题解。意识到的时候已经来不及了。。。抱歉。。。 —————————————————————————————————————— A.走格子 按题意模拟即可 #include <bits/…

【结论】环

环 题目大意&#xff1a; 给出一个环中的三个数&#xff0c;这三个数按输入顺序连接&#xff08;有向&#xff09;&#xff0c;问连接的线是顺时针还是逆时针 原题&#xff1a; 题目描述 有一个圆&#xff0c;1-N共N个数在圆环上顺时针排列着。 现在给你a,b,c三个数&#…

Asp.Net Core 快速邮件队列设计与实现

发送邮件几乎是软件系统中必不可少的功能&#xff0c;在Asp.Net Core 中我们可以使用MailKit发送邮件&#xff0c;MailKit发送邮件比较简单&#xff0c;网上有许多可以参考的文章&#xff0c;但是应该注意附件名长度&#xff0c;和附件名不能出现中文的问题&#xff0c;如果你遇…

CF1114F-Please, another Queries on Array?【线段树,欧拉函数】

正题 题目链接:https://www.luogu.com.cn/problem/CF1114F 题目大意 nnn个数的一个序列要求支持 区间乘上一个数询问一个区间的乘积的φ\varphiφ值 解题思路 因为数很小&#xff0c;而我们求φ\varphiφ需要知道一个数所包含的质因子。发现在300300300以内的只有626262个质…

牛客练习赛20

A. 礼物 枚举一元奥利奥的个数&#xff0c;计算2元的个数&#xff0c;现在需要解决从N种物品中&#xff0c;取x个的方法数&#xff0c;把N个种类看作N个盒子&#xff0c;奥利奥看作球&#xff0c;就是经典球盒模型了。 #include <bits/stdc.h> #define rep(i,a,b) for(in…

【模拟】数列

数列 题目大意&#xff1a; 有一个序列&#xff0c;1,11,21,1211,111221,3122111,11,21,1211,111221,3122111,11,21,1211,111221,312211&#xff0c;形如上一个数有x1x_1x1​个x2x_2x2​&#xff0c;x3x_3x3​个x4x_4x4​&#xff0c;把x连起来即为当前数 原题&#xff1a; …

.net core redis 驱动推荐,为什么不使用 StackExchange.Redis

前言本人从事 .netcore 转型已两年有余&#xff0c;对 .net core 颇有好感&#xff0c;这一切得益于优秀的语法、框架设计。2006年开始使用 .net 2.0&#xff0c;从 asp.net 到 winform 到 winservice 等等领域开发都些许涉猎。对.net和大多数同胞有着类似的感触&#xff0c;那…

2018 计蒜之道 复赛

A. 贝壳找房函数最值 常规贪心推式子。按(a-1)/b排序 #include <bits/stdc.h> #define rep(i,a,b) for(int ia;i<b;i) #define frep(i,a,b) for(int ia;i>b;--i) #define mem(W) memset(W,0,sizeof(W)) #define pb push_back typedef long long ll; const int N 1…

看电影

看电影 题目大意&#xff1a; 在一个有n个点的环中选m个人&#xff0c;选中ld号的可能性为多少 原题&#xff1a; 题目描述 听说NOIP2016大家都考得不错&#xff0c;于是CCF奖励省常中了 K 张变形金刚5的电影票奖励OI队的同学去看电影。可是省常中OI队的同学们共有 N&…

[开源]开放域实体抽取泛用工具 NetCore2.1

开放域实体抽取泛用工具https://github.com/magicdict/FDDC更新时间 2018年7月16日 By 带着兔子去旅行开发这个工具的起源是天池大数据竞赛&#xff0c;FDDC2018金融算法挑战赛02&#xff0d;A股上市公司公告信息抽取。这个比赛是针对金融公告开展的信息抽取比赛。在参赛过程中…

牛客-牛牛的猜球游戏

正题 题目链接:https://ac.nowcoder.com/acm/contest/7605/B 题目大意 101010个数&#xff0c;nnn个操作交换两个位置的数。mmm次询问操作一段区间后的序列。 解题思路 处理出fi,jf_{i,j}fi,j​表示处理了前iii个第jjj位的是哪个数。然后拿fl−1f_{l-1}fl−1​和frf_rfr​一一…

【DP】树塔狂想曲

树塔狂想曲 题目大意&#xff1a; 有一个数字金字塔&#xff0c;让你求出去掉一个点后&#xff0c;从最顶端走到最低端的最大值&#xff08;只能往下或右下走&#xff09; 原题: 题目描述 相信大家都在长训班学过树塔问题&#xff0c;题目很简单求最大化一个三角形数塔从上…

CF438D-The Child and Sequence【线段树】

正题 题目链接:https://www.luogu.com.cn/problem/CF438D 题目大意 一个序列要求支持 区间求和区间取模单点修改 解题思路 对于一个数取模会有结果x%p{x≤⌊x2⌋xx\% p\{\begin{matrix}x\leq \lfloor\frac{x}{2}\rfloor\\x\end{matrix}x%p{x≤⌊2x​⌋x​ 也就是一个数最多…

主席树学习笔记

主席树学习笔记 说在前边&#xff1a; 之前了解过主席树的基础的思想&#xff0c;但是没有系统学习过&#xff0c;所以打算通过一些题目重新学习。POJ2104 题意&#xff1a;静态区间查询 k-th number思路&#xff1a;对每个位置开一颗权值线段树&#xff0c;维护前缀区间每个数…