一看到这个题

就感觉。。。cao,,

什么东西。。。??!

然后就开始暴力求Fn

然鹅我并不会写高精(我太菜了)

只能求到大概10左右

在吧Fn给质因数分解

求出其因子个数

妄图找到什么有关的规律

但是我太过于弱小

并未找到。。。。。。。

(yjg:你找不到规律,并不代表没有规律)

然而我还瞎jb乱模

导致局面甚是混乱

但是,,,,

质因数分解貌似有点苗头,,,

而且这个东西

像极了斐波那契数列

那如果是两相结合

就是正解!!!

我的40分代码:

可能是写的太过繁琐

导致TLE

#include<cstdio>
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int mod=1e9+;
int f[][];
int n;
int main() {
freopen("fiborial.in","r",stdin);
freopen("fiborial.out","w",stdout);
cin>>n;
for(int i=; i<=n; i++) {
int k=i,t=;
for(int j=; j<=i; j++)
f[][j]=f[][j]+f[][j],f[][j]%=mod;
while(k>) {
while(k%t==) {
k/=t;
f[][t]++;
}
t++;
}
for(int j=; j<=i; j++) {
f[][j]=f[][j];
f[][j]=f[][j];
}
}
long long ans=;
for(int i=; i<=n; i++)
ans*=(f[][i]+),ans%=mod;
cout<<ans; fclose stdin;
fclose stdout;
return ;
}

那么就让我们看看

牛逼哄哄的土蛋的代码吧

上!

#include <cstdio>
#include <cstdlib> typedef long long ll; const int N = (int)5e6;
const int S = (int)1e6; const int mod = (int)1e9 + ;
int f[N + ], n, p[S + ], cnt = , m[N + ], c[N + ];
bool v[N + ]; inline int add(int a, int b) {
int r = a + b;
return r >= mod ? r - mod : r;
} int main() {
freopen("fiborial.in", "r", stdin);
freopen("fiborial.out", "w", stdout); scanf("%d", &n);
f[] = f[] = ;
for (int i = ; i <= n; ++i) f[i] = add(f[i - ], f[i - ]);
for (int i = ; i <= n; ++i) {
if (!v[i]) p[cnt++] = i, m[i] = i;
for (int j = , tmp; j < cnt && (tmp = i * p[j]) <= n; ++j) {
v[tmp] = true, m[tmp] = p[j];
if (!(i % p[j])) break;
}
} for (int i = ; i <= n; ++i)
for (int x = i; x != ; x /= m[x])
c[m[x]] = add(c[m[x]], f[n - i]);
int ans = ;
for (int i = ; i < cnt; ++i)
ans = (ll)ans * (c[p[i]] + ) % mod;
printf("%d\n", ans); return ;
}

Fiborial 题解——2019.10.14的更多相关文章

  1. C 题解———2019.10.16

    现在很痛苦,等过阵子回头看看,会发现其实那都不算事. [题目描述]定义一个排列 a 的价值为满足|a[i]-i|<=1 的 i 的数量.给出三个正整数 n,m,p,求出长度为 n 且价值恰好为 ...

  2. B 题解————2019.10.16

    相信他说的话,但不要当真 [题目描述]有一个长度为 n 的自然数序列 a,要求将这个序列恰好分成至少 m 个连续子段. 每个子段的价值为该子段的所有数的按位异或.要使所有子段的价值按位与的结果最大,输 ...

  3. A 题解————2019.10.16

    [题目描述] 对于给定的一个正整数n, 判断n是否能分成若干个正整数之和 (可以重复) ,其中每个正整数都能表示成两个质数乘积. [输入描述]第一行一个正整数 q,表示询问组数.接下来 q 行,每行一 ...

  4. 完整开发流程管理提升与系统需求分析过程 随堂笔记(day 1) 【2019/10/14】

    Top12原则: 主要资源,重要功能,依据需求重要度进行资源分配, 项目100功能 1 day -> 100Task -> 10 Dev 20% 80% 开发各阶段流程及规范   需求.架 ...

  5. 忍者钩爪 ( ninja) 题解———2019.10.19

    可以到这里测..嘿嘿嘿 题目: [问题 描述 ] 小 Q 是一名酷爱钩爪的忍者, 最喜欢飞檐走壁的感觉, 有一天小 Q 发现一个练习使用钩 爪的好地方,决定在这里大显身手. 场景的天花板可以被描述为一 ...

  6. T1 :最小值(min)题解 ——2019.10.15

    思路: 对于 % 30 的数据,可以想到一个 Dp 方程: 其中dp[i]表示分割[1,i]的最大答案 代码: #include<cstdio> #include<cstring&g ...

  7. JAVA课堂作业(2019.10.14)

    一. (1)代码 package class20191014; import java.util.Scanner; public class ClassHomework { public static ...

  8. macOS 10.14 Mojave 开发环境配置Apache多PHP版本

    第1部分:macOS 10.14 Mojave Web开发环境 在macOS上开发Web应用程序真是一种乐趣.设置开发环境有很多选择,包括广受欢迎的MAMP Pro,它在Apache,PHP和MySQ ...

  9. Pairs Forming LCM 在a,b中(a,b<=n)(1 ≤ n ≤ 10^14),有多少组(a,b) (a<b)满足lcm(a,b)==n; lcm(a,b)=p1 ^ max(a1,b1) * p2 ^ max(a2,b2) *..........*pn ^ max(an,bn)

    转自:http://www.cnblogs.com/shentr/p/5285407.html http://acm.hust.edu.cn/vjudge/contest/view.action?ci ...

随机推荐

  1. Linux学习笔记之vim操作指令大全

    0x00 关于Vim Vim是款强大的文本编辑器,但是众多指令需要学习,这次记录了指令大全方便以后翻阅. Vim的几种模式 正常模式:可以使用快捷键命令,或按:输入命令行. 插入模式:可以输入文本,在 ...

  2. 树莓派Raspbian系统密码

    树莓派Raspbian系统密码 树莓派Raspbian系统默认登录用户名为pi,该账户默认密码是raspberry(可在raspi-config中修改). 树莓派的Raspbian系统root用户默认 ...

  3. pandas-18 reindex用法

    pandas-18 reindex用法 pandas中的reindex方法可以为series和dataframe添加或者删除索引. 方法:serise.reindex().dataframe.rein ...

  4. html, js,css应用文件路径规则

    web前端一般常用文件 .html .css .js.但是当用css文件和html引入资源(比如图片)时,路径可能不相同.下面总结了几条. 使用相对路径引入规则: html或者js引入图片,按照htm ...

  5. APP开发基础知识(转载)

    来源:https://www.cnblogs.com/wangsea/p/9413672.html 本文针对小白用户对App做一个简单的介绍,首先要了解App都有哪些类型,不同的类型适用于哪些需求,用 ...

  6. MySQL 触发器学习-markdown->html 格式测试

    <!doctype html>触发器 figure:first-child { margin-top: -20px; } #write ol, #write ul { position: ...

  7. centos7修改网卡命名规则

    实验目的: 修改默认的网卡命名规则,习惯于ethx的形式 实验环境: centos7 熟悉控制网卡名字的规则生产的参数biosdevname/net.ifnames   /etc/default/gr ...

  8. 【Iterm2】如何解决iterm2窗口自动隐藏的问题

    一.问题描述 当我们使用Iterm2的Hotkey Windom功能时,通过快捷键唤起Iterm2窗口后,然后鼠标在iterm2窗口之外触发点击操作就会让 iterm2窗口自动隐藏.. 这样有时候会觉 ...

  9. Python 关于列表字典的键值修改

    list (修改列表的索引值) 循环一个列表时,最好不要对原列表有改变大小的操作,这样会影响你的最终结果. #使用负索引进行修改列表 print('First') lis = [11, 22, 33, ...

  10. qt5.12 解决显示中文乱码问题

    在菜单栏   文件->选项,找到文本编辑器 文件编码设置如图 在cpp文件中加入 #pragma execution_character_set("utf-8") 之后就可以 ...