51nod1693
题解:
首先将问题转化,可以发现操作改为两种
一种是s*=k,代价为k,一种是s--,代价为1
转化成图论,spfa跑最短路
然后更据一些证明,代价1的k<=13且为质数,并且不可能操作2连续5次
所以就可以优化
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=,M=;
int n,a[N],b[M],f[N],in[N],dis[N];
int main()
{
scanf("%d",&n);
f[]=;
f[]=,f[]=,f[]=,f[]=,f[]=,f[]=;
int l=,r=;
memset(dis,0x3f,sizeof dis);
dis[]=;
b[]=;
while (l!=r)
{
int now=b[l++];
in[now]=;
l%=M;
if (now!=&&dis[now-]>dis[now]+)
{
dis[now-]=dis[now]+;
if (!in[now-])
{
b[r++]=now-;
in[now-]=;
r%=M;
}
}
for (int i=;f[i]*now<=n+&&i<=f[];i++)
{
int k=f[i]*now;
if (dis[k]>dis[now]+f[i])
{
dis[k]=dis[now]+f[i];
if (!in[k])
{
b[r++]=k;
in[k]=;
r%=M;
}
}
}
}
printf("%d",dis[n]);
}
51nod1693的更多相关文章
- 51nod1693 水群
题目链接:51nod1693 水群 题解参考大神的博客:http://www.cnblogs.com/fighting-to-the-end/p/5874763.html 这题时限0.4秒,真的够狠的 ...
- 51nod1693 水群 最短路
若A=K*B,若仅通过操作二:将B变换为A需要K步, 由算数基本定理可知:k=p1*p2*……pn(p为素数,且可能重复) 那么:将B转化为p1*B需要p1步,将p1*B转化为p1*p2*B需要p2步 ...
随机推荐
- newcode wyh的吃鸡(优势队列+BFS)题解
思路: 要用优势队列,因为有的+2,有的+1,所以队列中的步长是不单调的,所以找到一个答案但不一定最小,所以用优势队列把小的放在队首. 要记录状态,所以开了三维,题目和昨天做的那道小明差不多 vis开 ...
- Node.js中package.json中^和~的区别
webpack 项目的package.json 文件列出了项目所依赖的插件和库,同时也给出了对应的版本说明,但是在版本说明前面还有个符号:'^'(插入符号)和'~'(波浪符号),总结了下他们之间的区别 ...
- Python非递归遍历多叉树
class Queue: def __init__(self,max_size): self.max_size = int(max_size) self.queue = [] def put(self ...
- DDSM数据处理之PngWithOverlay 框出病灶区域
修改代码路径 若overlay是某一侧的标注. 文件夹里某一侧的png 应该有对应 某一侧的overlay 这样一一对应才可以使得代码运行. 否则需要手动删除没有overlay的png图片. 左侧没有 ...
- Eclipse如何快速改变主题颜色
厌倦了Eclipse的白底黑子,我们来更换下Eclipse的主题颜色,让眼睛更舒服一点 首先先进入网址:http://eclipsecolorthemes.org/ 选择一个主题进入,点击进入如下: ...
- js获取url 参数
window.getRequest = function (url) { var theRequest = new Object(); var indexOf = url.indexOf(" ...
- MVC动态二级域名解析
动态二级域名的实现: 应用场景:目前产品要实现block功能,因为工作需要实现二级域名:www.{CompanyUrl}.xxx.com 假设产品主域名入口为:www.xxx.com 公司员工管理:w ...
- QString 编码转换
参考网址:http://blog.csdn.net/lfw19891101/article/details/6641785 (网页保存于:百度云CodeSkill33 --> 全部文件 > ...
- 《Blue Flke》团队项目需求改进与系统设计
Github地址:https://github.com/13993013291/ruanjianguigexuqiu/tree/master 一.团队项目需求分析改进 1.<通讯录管理系统需求说 ...
- Android 使用SQLite
SQLite简介 Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLit ...