Fiborial 题解——2019.10.14

一看到这个题
就感觉。。。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的更多相关文章
- C 题解———2019.10.16
现在很痛苦,等过阵子回头看看,会发现其实那都不算事. [题目描述]定义一个排列 a 的价值为满足|a[i]-i|<=1 的 i 的数量.给出三个正整数 n,m,p,求出长度为 n 且价值恰好为 ...
- B 题解————2019.10.16
相信他说的话,但不要当真 [题目描述]有一个长度为 n 的自然数序列 a,要求将这个序列恰好分成至少 m 个连续子段. 每个子段的价值为该子段的所有数的按位异或.要使所有子段的价值按位与的结果最大,输 ...
- A 题解————2019.10.16
[题目描述] 对于给定的一个正整数n, 判断n是否能分成若干个正整数之和 (可以重复) ,其中每个正整数都能表示成两个质数乘积. [输入描述]第一行一个正整数 q,表示询问组数.接下来 q 行,每行一 ...
- 完整开发流程管理提升与系统需求分析过程 随堂笔记(day 1) 【2019/10/14】
Top12原则: 主要资源,重要功能,依据需求重要度进行资源分配, 项目100功能 1 day -> 100Task -> 10 Dev 20% 80% 开发各阶段流程及规范 需求.架 ...
- 忍者钩爪 ( ninja) 题解———2019.10.19
可以到这里测..嘿嘿嘿 题目: [问题 描述 ] 小 Q 是一名酷爱钩爪的忍者, 最喜欢飞檐走壁的感觉, 有一天小 Q 发现一个练习使用钩 爪的好地方,决定在这里大显身手. 场景的天花板可以被描述为一 ...
- T1 :最小值(min)题解 ——2019.10.15
思路: 对于 % 30 的数据,可以想到一个 Dp 方程: 其中dp[i]表示分割[1,i]的最大答案 代码: #include<cstdio> #include<cstring&g ...
- JAVA课堂作业(2019.10.14)
一. (1)代码 package class20191014; import java.util.Scanner; public class ClassHomework { public static ...
- macOS 10.14 Mojave 开发环境配置Apache多PHP版本
第1部分:macOS 10.14 Mojave Web开发环境 在macOS上开发Web应用程序真是一种乐趣.设置开发环境有很多选择,包括广受欢迎的MAMP Pro,它在Apache,PHP和MySQ ...
- 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 ...
随机推荐
- Github 上优秀的 Java 项目推荐
1.JavaGuide 地址:Snailclimb/JavaGuide [Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. 2.DoraemonKit 地址:didi/Do ...
- Linux学习笔记之LVM基本应用,扩展及缩减实现
0x00 LVM概述 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘 ...
- RGB的光的三原色、品红黄青颜料的三原色
学习了祁连山老师讲的光与色的基础知识,觉得收获颇多,所以记下来光与色的知识点. 首先提问大家一个问题:照片中物体的颜色就是它的固有色么?(请从色光和物体固有色的角度回答) 这个问题在看完下面的总结后相 ...
- 服务发现框架选型: Consul、Zookeeper还是etcd ?
背景 本文并不介绍服务发现的基本原理.除了一致性算法之外,其他并没有太多高深的算法,网上的资料很容易让大家明白上面是服务发现.想直接查看结论的同学,请直接跳到文末.目前,市面上有非常多的服务发现工具, ...
- Mysql关键字Explain 性能优化神器
Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析查询语句或是结构的性能瓶颈.在select语句之前增加explaion关键字,MySQL会在查询上设置一个标记,执行查 ...
- Xcode11 Developer Tool中没了Application Loader
升级Xcode11之后不少人发现在Open Developer Tool中没了Application Loader. 那么如果我们还想用该怎么办呢? 先这样 找个老版的Xcode–>Conten ...
- 【转载】华为荣耀V9的手机录屏功能如何开启
手机录屏有时候对我们的帮助很大,例如可以录制相应的APP使用教程.微信小程序使用流量讲解视频等,针对于软件开发人员等来说,手机录屏功能针对功能演示视频非常的有帮助.在华为荣耀V9手机中,进行手机录屏有 ...
- 智能制造进入下半场?APS如何进行优化
按照现在算法和计算机处理能力的发展,现在资源优化的方向已经逐渐摒弃,而是在更系统的“有限产能计划的”框架内一并解决产能和物料的问题. 我们所看到的新近涌现出来的很多APS系统.但碍于算法的复杂程度,在 ...
- ubuntu 开启ip包转发
1. 开启IP转发 //临时 # echo "1"> /proc/sys/net/ipv4/ip_forward //永久 # nano /etc/sysctl.conf n ...
- Linux装B命令
原文:https://mp.weixin.qq.com/s/CNmMRjl0iZ8EBPq5VgJHsA 1.空心字体 yum install -y figlet figlet happy 1.0 2 ...