51nod1693 水群
题目链接:51nod1693 水群
题解参考大神的博客:http://www.cnblogs.com/fighting-to-the-end/p/5874763.html
这题时限0.4秒,真的够狠的。。我用优化过的dij狂交一直TLE,最后还是死在四百多毫秒上,应该是姿势不对orz。后来看别人用spfa,然后一改就过了,这里我想收藏一下记忆化搜索的解法,真心服了。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = ;
const int inf = 0x3f3f3f3f;
int n;
int pri[] = {,,,,};
int s[N][];//1到i上一条边的状态是f的最小操作数
//j=0时,上一条边可以是i->i-1,否则是i->i*p
int dfs(int x, int f){
if(x == ) return ;
if(s[x][f]) return s[x][f];
s[x][f] = inf;
for(int i = ; i < ; i++)
if(!(x % pri[i]))
s[x][f] = min(s[x][f], dfs(x /pri[i], ) + pri[i]);
if(!f) return s[x][f];
s[x][] = s[x][];
for(int i = ; i < ; i++)
s[x][f] = min(s[x][f], dfs( x + i, ) + i);
return s[x][f];
}
int main(){
scanf("%d", &n);
printf("%d\n", dfs(n, ));
return ;
}
AC代码
再贴上我这份超时了的dij,我写的好差啊,只好说我刚刚入门最短路姿势还不够orz
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#define CLR(a,b) memset((a),(b),sizeof((a)))
using namespace std;
#define inf 0x3f3f3f3f
const int N = ;
int d[N], vis[N];
int prime[] = {, , , , };
int n;
struct qnode{
int v,c;
qnode(int _v=,int _c=):v(_v),c(_c){}
bool operator < (const qnode &r)const{
return r.c <c;
}
};
void dij(){
priority_queue<qnode>q;
for(int i = ; i <= n+; ++i){
d[i] = inf;
vis[i] = ;
}
d[]=;
q.push(qnode(, ));
while(!q.empty()){
qnode t=q.top(); q.pop();
int u=t.v;
if(vis[u])
continue;
vis[u]=;
for(int i = ; i< && u * prime[i] <= n+; ++i){
int v = u * prime[i];
int w = prime[i];
if(!vis[v] && d[u] + w < d[v]){
d[v] = d[u] + w;
q.push(qnode(v, d[v]));
}
}
int v = u - ;
int w = ;
if(!vis[v] && d[u] + w < d[v]){
d[v] = d[u] + w;
q.push(qnode(v, d[v]));
}
}
}
int main(){
scanf("%d", &n);
dij();
printf("%d\n", d[n]);
return ;
}
TLE代码
51nod1693 水群的更多相关文章
- 51nod1693 水群 最短路
若A=K*B,若仅通过操作二:将B变换为A需要K步, 由算数基本定理可知:k=p1*p2*……pn(p为素数,且可能重复) 那么:将B转化为p1*B需要p1步,将p1*B转化为p1*p2*B需要p2步 ...
- 51nod 1693 水群
基准时间限制:0.4 秒 空间限制:524288 KB 分值: 160 难度:6级算法题 收藏 关注 总所周知,水群是一件很浪费时间的事,但是其实在水群这件事中,也可以找到一些有意思的东西. 比如 ...
- 51 nod 1693 水群
1693 水群 基准时间限制:0.4 秒 空间限制:524288 KB 分值: 160 难度:6级算法题 收藏 关注 总所周知,水群是一件很浪费时间的事,但是其实在水群这件事中,也可以找到一些有 ...
- 51nod 1693 水群(神奇的最短路!)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1693 题意: 思路: 这个思路真是神了.. 对于每个点$i$,它需要和$ ...
- 【07】QQ群管理公告小结:
[07]QQ群管理公告小结: 01,请看公告遵守相关规定. 02,群内除QQ自带的缺省表情外(不是QQ的VIP或大图表情),禁止发送大表情,大图片(展示问题的屏幕截图除外), 03,修改群名片 ...
- CTSC2016&&APIO2016滚粗记&&酱油记&&游记<del>(持续更新)</del>
挖一波坑 #include <cstdio> using namespace std; int main(){ puts("转载请注明出处:http://www.cnblogs. ...
- SHOI2016游记&滚粗记&酱油记
Day0 学校刚期中考完,全科血崩,感觉这次真要考不到一本线了tat 晚上写了个可持久化trie的题,也懒得敲板子(上个礼拜都敲过了),就碎叫了 Day1 上午起床吃饭水群看球,吃完中饭就去考场了. ...
- 前端进阶试题css(来自js高级前端开发---豪情)既然被发现了HOHO,那我就置顶了嘿嘿!觉得自己技术OK的可以把这套题目做完哦,然后加入高级前端的社区咯
http://www.cnblogs.com/jikey/p/4426105.html js高级前端开发加群方法(此群很难进,里面纯技术,严禁广告,水群) 完整题目做完发邮箱(jikeytang@16 ...
- msp
10月8号加入了微软的msp项目,其实那时候对msp没有什么概念,不知道要干嘛,真的觉得大不了就退出呗,反正也没啥大事, 现在再也不那么看了,这二十多天虽然没怎么水群,但是还是一直在关注着我们这个 ...
随机推荐
- Salted hash password
参考文档 http://www.cnblogs.com/richardlee/articles/2511321.html https://en.wikipedia.org/wiki/Salt_%28c ...
- 使用inherit属性值继承其父元素样式来覆盖UA自带样式。
像button.input这样的表单控件,不同的浏览器都会有自己的样式风格(UA样式).我们可以使用inherit继承其父元素样式,从而覆盖浏览器的UA样式. button, input, selec ...
- MVC中的JS和CSS压缩
小说一下Js和CSS压缩的好处: 1.减小了文件的体积 2.减小了网络传输量和带宽占用 3.减小了服务器的处理的压力 4.提高了页面的渲染显示的速度 很多建议将站点的静态文件(如图片.js.css ...
- Latent Dirichlet Allocation 文本分类主题模型
文本提取特征常用的模型有:1.Bag-of-words:最原始的特征集,一个单词/分词就是一个特征.往往一个数据集就会有上万个特征:有一些简单的指标可以帮助筛选掉一些对分类没帮助的词语,例如去停词,计 ...
- 假如 Micromedia 没被收购,会不会早于 Apple 推动 H5、CSS3 的发展
看着如今大行其道的 H5.CSS3,想想当年的“网页三剑客”,不禁感慨:假如 Micromedia 没被收购,会不会早于 Apple 推动 H5.CSS3 的发展? 当时 Apple 先是询问 Ado ...
- Yeoman自动构建js项目
Aug 19, 2013 Tags: bowergruntJavascriptjsnodejsyeomanyo Comments: 10 Comments Yeoman自动构建js项目 从零开始nod ...
- 剑指offer——变态跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 问题分析 由于每次跳的阶数不确定,没有一个固定的规律,但是可以了解的是后一次跳 ...
- Oracle分组排序查询
用sql查询每个分组中amount最大的前两条记录: SELECT *FROM HW trWHERE(SELECT COUNT(*) FROM HW WHERE tr.DEPID=DEPID AND ...
- CSS简写指南(转)
高效的css写法中的一条就是使用简写.通过简写可以让你的CSS文件更小,更易读.而了解CSS属性简写也是前端开发工程师的基本功之一.今天我们系统地总结一下CSS属性的缩写. 1.色彩缩写 色彩的缩写最 ...
- 微信小程序-视图
数据绑定 <!--wxml--> <view> {{message}} </view> // page.js Page({ data: { message: 'He ...