一看到这个题

就感觉。。。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. SpringBoot @EnableAutoConfiguration exclude属性失效

    本文链接:https://blog.csdn.net/yuan_ren_sheng/article/details/81516779 在学习SpringBoot的时候,入了不少的坑.今天学习@Spri ...

  2. docker,containerd,runc,docker-shim之间的关系

    原文:https://blog.csdn.net/u013812710/article/details/79001463 关于containerd关于containerd的一些详解介绍,请参考cont ...

  3. Linux下快速安装Python3和pip

    如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环境! 一.安装p ...

  4. Java的Annnotation (注解)

    注解是什么呢? 其实就像商场的商品上都贴有自己的标签一样,它提供了关于这个商品的许多额外信息.你可以根据这些信息对其进行附加的处理. (Java的语法糖果然比较差劲), 这个name()方法太累赘了, ...

  5. Test Title

    test testing... testing in day02... testing in day07...

  6. JavaScript之变量(声明、解析、作用域)

    声明(创建) JavaScript 变量 在 JavaScript 中创建变量通常称为"声明"变量. 一.我们使用 var 关键词来声明变量: var carname; 变量声明之 ...

  7. 纯css无js实现点击事件

    <input id="A" type="checkbox"><label for="A"> <span cla ...

  8. Java 之 Collection 接口

    一.Collection 集合 Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是 java.util.List 和 java.util.Set. ...

  9. kbmmw 5.10.10 发布

    这个版本主要是bug修正. New stuff         =========         - Added OnException event property to TkbmMWSchedu ...

  10. sqlserver语句随笔

    替换数据:update 表名 set 列=replace(列,'要替换的数据','替换成的数据'),例子:update kers set KeyConn=replace(KeyConn,'-','/' ...