基准时间限制:0.4 秒 空间限制:524288 KB 分值: 160 难度:6级算法题
 收藏
 关注

总所周知,水群是一件很浪费时间的事,但是其实在水群这件事中,也可以找到一些有意思的东西。

比如现在,bx2k就在研究怎样水表情的问题。
首先,bx2k在对话框中输入了一个表情,接下来,他可以进行三种操作。
第一种,是全选复制,把所有表情全选然后复制到剪贴板中。
第二种,是粘贴,把剪贴板中的表情粘贴到对话框中。
第三种,是退格,把对话框中的最后一个表情删去。
假设当前对话框中的表情数是num0,剪贴板中的表情数是num1,
那么第一种操作就是num1=num0
第二种操作就是num0+=num1
第三种操作就是num0--
现在bx2k想知道,如果要得到n(1<=n<=10^6)个表情,最少需要几次操作。
请你设计一个程序帮助bx2k水群吧。

Input
一个整数n表示需要得到的表情数
Output
一个整数ans表示最少需要的操作数
Input示例
233
Output示例
17
解法一
spfa
知道点电脑的都知道 一直复制相同的东西是无意义的 
所以我们把第一第二种操作看为一种 
而且我们还发现 某个点可以被多个点连接
多次连接耗时太多 
所以我们只需连到他的质数倍就可以了 
经研(ti)究(jie)发现 只有小于等于13的质数才对结果有影响
解法二
dp (来自myj Orz)
屠龙宝刀点击就送
#include <cstring>
#include <cstdio>
#include <queue>
#define N 1000005using namespace std;
bool notPrime[N],vis[N];
int Prime[N]={0,2,3,5,7,11,13,19},num,n,dis[N];
void spfa()
{queue<int>q;q.push(1);memset(dis,0x3f,sizeof(dis));vis[1]=1;dis[1]=0;for(int now;!q.empty();){now=q.front();q.pop();vis[now]=0;for(int i=1;i<=7;++i){int v=now*Prime[i];if(v>n+20) break;if(v<n+20&&dis[v]>dis[now]+Prime[i]){dis[v]=dis[now]+Prime[i];if(!vis[v]){vis[v]=1;q.push(v); }}}if(now>0&&dis[now-1]>dis[now]+1){dis[now-1]=dis[now]+1;if(!vis[now-1]){vis[now-1]=1;q.push(now-1); }}}
}
void init()
{notPrime[1]=1;for(int i=2;i<=N-5;++i){if(!notPrime[i]) Prime[++num]=i;for(int j=1;j<=num&&i*Prime[j]<=N-5;++j){notPrime[i*Prime[j]]=1;if(i%Prime[j]==0) break;}}
}
int main()
{scanf("%d",&n);//init();
    spfa();printf("%d\n",dis[n]);return 0;
}

#include <iostream>
#include <cstring>
#include <cstdio>using namespace std;
int n,dp[1000045],lit;
int main()
{cin>>n;memset(dp,127/3,sizeof(dp)),dp[1]=0;for(int i=1,v,base;i<=n+40;++i){base=dp[i];for(v=1;true;++v)if(dp[i+v]+v<=base) base=dp[i+v]+v;else break;dp[i]=base,++base;for(v=1;i+v*i<=n+40;++v)dp[i+v*i]=min(dp[i+v*i],base+v);}cout<<dp[n];return 0;
}

dp (Orz myj)

转载于:https://www.cnblogs.com/ruojisun/p/7511079.html

51nod 1693 水群相关推荐

  1. 51nod 1693 水群(思维,最短路,spfa)

    1693 水群 总所周知,水群是一件很浪费时间的事,但是其实在水群这件事中,也可以找到一些有意思的东西. 比如现在,bx2k就在研究怎样水表情的问题. 首先,bx2k在对话框中输入了一个表情,接下来, ...

  2. 51nod 1693 水群 (spfa)

    Description 总所周知,水群是一件很浪费时间的事,但是其实在水群这件事中,也可以找到一些有意思的东西. 比如现在,bx2k就在研究怎样水表情的问题. 首先,bx2k在对话框中输入了一个表情� ...

  3. 51nod1693 水群

    QwX (题目提供者) 首先简化题目,题面的意思就是,当前有一个数s 操作1是s*=k代价为k,操作2是s--代价为1 求把s从1变到n的最小代价 做法1: 直接暴力记忆化搜索,F(i)表示从1到i用 ...

  4. C++和Rust_【Rust水群夜话】盘点Rust 官方团队2019年进展

    夫天地者,万物之逆旅也:光阴者,百代之过客也.而浮生若梦,为欢几何. 一年又过去了. 在Rust水群中,闲聊起Rust团队这一年的Roadmap进展,正好野喵君 @CrLF0710 常年驻守Rust官 ...

  5. 小姑娘说,我全靠水群,挤进了安全圈

    认识她,是在一年多以前,那时候,我刚开始写技术公众号,而她,在做运营. 前几天,她在朋友圈刷到我写的那篇文章<他说,我可能以后不干安全了>. 她问我,你想听我的故事吗? 我很荣幸成为了她的 ...

  6. 1800: 少水群多刷题

     1800: 少水群多刷题 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 700  Solved: 321 SubmitStatusWeb Boa ...

  7. ZZULIOJ 1800: 少水群多刷题

    题目描述 输入 多实例,读取到文件尾结束. 每个实例输入一个正整数n 输出 对每个实例:输出n行"年轻人要少水群多刷题!"(不要输出引号) 每个实例后面输出一个空行. 样例输入 1 ...

  8. ZZULIOJ 1800 少水群多刷题

    1800: 少水群多刷题 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 686  Solved: 314 SubmitStatusWeb Board ...

  9. discord 自动水群脚本

    原理:从你加入的channel里获取到历史消息随机选择一条发送至目标channel 需要先登录网页版获取authorization # -*- coding: utf-8 -*- "&quo ...

最新文章

  1. ROS系统——部署OpenVINO版Nanodet超轻量目标检测器
  2. linux批量管理矿机,华硕最新的挖矿主机板可以一次控制 20 个 GPU
  3. UITableView 重用机制
  4. java jolt调用tuxedo_Jolt调用Tuxedo服务,该怎么处理
  5. gridView总结
  6. 病症:arm启动后应用程序界面显示…
  7. 解决越狱后 SSH 不能连接的问题
  8. HTML 5新增的元素
  9. CSS知识点整理(2):框模型,定位
  10. linux真实地址是什么意思,linux – 如何为发件人地址配置真实域名
  11. The meta-data is invalid or is corrupt
  12. 4.8 迁移数据,添加根路径
  13. The Nth Item
  14. 大篆汉字对照表_篆书的写法(附篆楷常用字对照表)
  15. c语言公路曲线要素,一、圆曲线要素及计算公式
  16. win10系统cf玩一局就服务器断开,win10系统玩cf游戏经常自动退出的详细步骤
  17. php输出跳转下一页,tp5页面输出时,搜索后跳转下一页的处理
  18. 国产手机再次发力,是否可以阻击三星苹果
  19. 相机光学(十一)——镜头
  20. 人工智能在实体零售行业,主要的应用场景是什么?

热门文章

  1. 2_C语言中的数据类型 (六)浮点数
  2. linux6.5+5.4 vncserver配置
  3. 智能手机收邮件之Mobile
  4. 倒计时小工具_想要工作效率更高?这几款计时工具你一定不能错过!
  5. JavaScript数组对象简介及其常用方法介绍
  6. 前端系统学习篇之HTML
  7. 华为全面屏鸿蒙,华为5G概念新机:真全面屏+鸿蒙OS 这才是旗舰手机
  8. 涉密专用服务器审计系统,国产专用服务器主机审计
  9. php 连接 onenet,arduino一直连接不上onenet
  10. aws搭建java项目_AWS 创建开源 UI 项目:这是新开源设计系统的第一步