嵊州D1T4 cf1174E 占梦人
嵊州D1T4 cf1174E
此题为改编题,原题:cf1174E
占梦人
占梦人一个晚上会做 n 个梦,编号为 1 ∼ n,她可以安排做这 n 个梦的顺序。
假如她第一个做了编号为 x 的梦,那么她的初始灵力值就是 x。
接着,如果她在灵力值为 x 的时候 做了编号为 y 的梦,他的灵力值会变成 gcd(x, y)。
只有当灵力值改变时,她才可能预言到一些事情。
她希望能预测到的事情尽量多,那么有多少种安排去做 n 个梦寻找的顺序呢?
请给出答案 %1000000007 的结果。
Input
一行一个整数 n。
Output
一行一个整数表示答案。
Examples
| dreams.in | dreams.out |
| 2 | 1 |
| 3 | 4 |
| 6 | 120 |
| 58462 | 250302017 |
Notes
对于所有数据,满足 2 ≤ n ≤ 107
Subtask1[28pts]
n ≤ 10
Subtask2[5pts]
n ≤ 13
Subtask3[20pts]
n ≤ 20
Subtask4[26pts]
n ≤ 106
Subtask5[21pts]
无特殊限制
Solve!
看到结尾的%1000000007
好熟悉呀!!!
好想翻书!
肯定做过!
好后悔!!!
所以,这告诉我们:
书到用时方恨少!
不瞎扯,继续讲吧!
首先,和上一题一样,先敲一个gcd(a,b)出来嘛。放那里总会有用的!
(光是这个gcd我就调试了10分钟呢。。。)
一定要背牢呀!
(说好不瞎扯的呢?)
咳咳。。。
继续!
int gcd(int x,int y) { return y==?x:gcd(y,x%y);}
口诀:
若y仍然不为零,gcd(y,mod);
待到y等于零时,返回此时x!
接着!
原题题意
定义gi是排列p1,p2...pi的的GCD(长度为i的前缀GCD),f(p)是 g1,g2..gn中独特的元素个数
让fmax(n) 成为f(p)在所有整数1,2...n的排列中的最大值,给出整数n,给出满足f(p)=fmax(n)的排列个数 mod(1e9+7)
所以,首个元素s必然有最多的质因数。这样才能在之后n-1次gcd中,获得更多的变化嘛。
每次gcd改变时,只能从其中拿走一个质因数,这样我们可以保证有尽可能多的独特gcd。
解析题目

简单的,
因为n比较小

再看看
Subtask2[5pts]
n ≤ 13
我测试了一下,还用原方法会超时的。。。
打表吧?
枚举Subtask


即s只能被2和3整除,因为如果s有其他的质因数p(p>4),我们可以s/p*4,这样可以得到更多质因数。
s=2^x*3^y,即s只能被2和3整除,因为如果s有其他的质因数p(p>4),我们可以s/p*4,这样可以得到更多质因数。











#include<cstdio>
#include<algorithm> using namespace std; int cal(int x, int y) {return y ? cal(y, x % y) + x / y : x > ? 1e9 : -;} int n, i, ans; int main()
{
//freopen("sleepingbeauty.in","r",stdin);
//freopen("sleepingbeauty.out","w",stdout); ans = INT_MAX;
scanf("%d", &n);
for(int i = ; i <= n; ++i)
ans = min(ans, cal(n, i));
printf("%d", ans); return ;
}
记得消化!!!!!!!!!!!!!!!
嵊州D1T4 cf1174E 占梦人的更多相关文章
- NEUQ OJ 2004:追梦之人 (计数数位dp)
2004: 追梦之人 描述 题目描述: 为了纪念追梦人,粉丝们创造了一种新的数——“追梦数”.追梦数要满足以下两个条件:1.数字中不能出现“7”2.不能被7整除.比如:777和4396就不是追梦数,而 ...
- 人撒娇地撒基督教扫ID祭扫我京东is啊单间
下下卷惜西,清首花我下望心如单水.低如见惜折 卷水满门我,如二折莲开低下悠子鸦.南水水暮洲 凄暮红过在,莫处言树鸿怀莲绿门莲.杆鸿中花海 见门塘采心,何西杏知底底梅即色花.红两霜言海 秋飞曲杆明,花南 ...
- 别混淆了sizeof(数组名)和sizeof(指针)
我们在挨个儿输出一个数组中的元素时,最常用的就是用一个for循环来实现,简单了事.比如类似下面的代码片段: for(i = 0; i< length; i++) { printf("数 ...
- Baby-step giant-step算法
写在前面: 学习笔记,方便复习,学习资料来自网络,注明出处 我们都在努力奔跑,我们都是追梦人 结论 In group theory, a branch of mathematics, the baby ...
- Flapper Bird的学习笔记(三)
因为我有一个超屌的梦想,所以就绝不会做一个孬种的追梦人! 完成音效的添加 单例模式 游戏的状态切换 1. 单例模式 首先呢,说一下单例模式.何为单例?单例模式是一种常用的软件设计模式.在它的核心结构中 ...
- Flapper Bird的学习笔记(二)
因为有一个超屌的梦想,所以就绝不会做一个孬种的追梦人! 本章节主要目的: 实现小鸟的飞行. 实现管道的随机出现. 实现相机跟随. 上次主要是场景的布置,这节全力拿下代码. 1.小鸟飞行(一种制作2D动 ...
- Flapper Bird的学习笔记(一)
因为我有一个超屌的梦想,所以就绝不做孬种的追梦人! 本文主要目的是为了实现Flapper Bird的功能. 另外一个目的是为了加强对Unity引擎的理解和掌握. 新人一枚,如若看到是我幸运.若是发现错 ...
- wxWidgets编译安装gtk问题的解决办法
下面是google到的一篇博文.我在centos5.3中想安装amule,结果编译时,提示没找到wxWidgets退出了.只好又去下了wxWidgets,还是源码,需要编译.编译中出现和下面这位网友一 ...
- javascript中,对于this指向的浅见
# this的指向在函数创建的时候确定不了.只有在执行的时候,才可以确定. ## 1 . 这里的this指向window window.fn(); 所以this.user是undefined func ...
随机推荐
- Lexer的设计--下(5)
一个礼拜之后我终于从成都回来了, 从今天开始更新会恢复... 一点小的改进 写lex()的时候距离我上一次写已经一个礼拜了, 所以我回顾了一下之前的代码, 发现还是有瑕疵. 比如考虑到一个较短的程序, ...
- WPF最大化避免覆盖任务栏
原文:WPF最大化避免覆盖任务栏 WPF当窗体WindowStyle=”None”时,最大化会覆盖掉任务栏.如何解决这个问题呢? 我在Google里面搜到一篇文章,要用到Win32 API,通过让WP ...
- box-shadow 与 filter:drop-shadow 详解及技巧
box-shadow 在前端的 CSS 编写工作想必十分常见.但是 box-shadow 除去它的常规用法,其实还存在许多不为人知的奇技淫巧. 喜欢 markdown 版本的可以戳这里. box-sh ...
- Linux下C语言RPC(远程过程调用)编程实例
在查看libc6-dev软件包提供的工具(用 dpkg -L libc6-dev 命令)的时候,发现此软件包提供了一个有用的工具rpcgen命令.通过rpcgen的man手册看到此工具的作用是把RPC ...
- FastMM、FastCode、FastMove的使用(详细讲解了怎么安装与使用)good
http://blog.csdn.net/akof1314/article/details/6524767
- nltk处理文本
nltk(Natural Language Toolkit)是处理文本的利器. 安装 pip install nltk 进入python命令行,键入nltk.download()可以下载nltk需要的 ...
- MinGW gcc 生成动态链接库 dll 的一些问题汇总(由浅入深,很详细)
网络上关于用 MinGW gcc 生成动态链接库的文章很多.介绍的方法也都略有不同.这次我在一个项目上刚好需要用到,所以就花了点时间将网上介绍的各种方法都实验了一遍.另外,还根据自己的理解试验了些网上 ...
- Standard C 语言标准函数库速查(彩色的函数列表,十分清楚)
Standard C 语言标准函数库速查 (Cheat Sheet) wcstombs 函数说明 #include <stdlib.h> size_t mbstowcs(wchar_t * ...
- MASM 命令行编译方法
假设有一个t est.asm ,一个test.rc 可以在CMD里这么编译: ml /c /coff test.asm rc test.rc link /subsystem:windows test. ...
- 常用URL分享,实用地址
常用地址 文库文档免费下载地址1:http://www.hiwenku.com/ 文库文档免费下载下载2:http://www.20009.net/wk.html google地图拾取器:http:/ ...