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没有什么概念,不知道要干嘛,真的觉得大不了就退出呗,反正也没啥大事, 现在再也不那么看了,这二十多天虽然没怎么水群,但是还是一直在关注着我们这个 ...
随机推荐
- 执行robot framework 的测试用例 命令行pybot使用方式
1.执行整个项目下的所有用例: pybot 项目路径.例如: pybot D:\robot 2.执行某个suit中的所有用例: pybot 项目路径\suit文件名称. 例如:pybot D:\rob ...
- ajax是什么
1.ajax是什么? ajax: asynchronous javascript and xml: 异步的javascript和xml. ajax是一种用来改善用户体验的技术,其本质是利用浏览器内置的 ...
- POJ - 3652 Persistent Bits
“模拟”类型,题型容易,使用bitset库对二进制逐位操作,初始化.十进制转二进制(unsigned int).位操作. POJ - 3652 Persistent Bits Time Limit: ...
- dpkg用法详解
dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理Debian的软件包. 下面是它的一些命令解释: 1)安装软件 命令行:dpkg -i <.deb file name ...
- 五、Standard Controllers
1.standardController:标准的controller 是同页面的standard Object的界面button的功能和逻辑是一样的<apex:page standardCont ...
- [课程设计]Scrum 1. 8多鱼点餐系统开发进度(完善整个订餐页面工作)
[课程设计]Scrum 1. 8多鱼点餐系统开发进度(完善整个订餐页面工作) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题: ...
- Uva 11324 最大团
题目链接:http://vjudge.net/contest/141990#problem/B 题意: 给一张有向图G,求一个结点集数最大的结点集,是的该结点集中任意两个结点 u 和 v,满足: 要么 ...
- 2016 ACM/ICPC Asia Regional Dalian Online
1009 Sparse Graph(hdu5876) 由于每条边的权值都为1,所以最短路bfs就够了,只是要求转置图的最短路,所以得用两个set来维护,一个用来存储上次扩散还没访问的点,一个用来存储这 ...
- Auty自动化测试框架第五篇——框架内部的调用支持、自动化安装库与配置说明
[本文出自天外归云的博客园] 本次对Auty自动化测试框架做些收尾工作,由于在scripts文件夹中的脚本会需要调用其他包结构文件夹中的脚本,所以这里需要添加一下框架对于内部脚本间互相调用的支持,这里 ...
- kibana安装与基础用法
来自官网,版本为4.5 下载rpm包并安装 wget -c https://download.elastic.co/kibana/kibana/kibana-4.5.4-1.x86_64.rpm rp ...