_bzoj1002 [FJOI2007]轮状病毒【瞎搞】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1002
这种题真是有毒,很多叼一点的都用matrix tree定理推出了递推公式,也有一些用好几维递推也可以解,然而我一个都看不懂。总结:下次遇到这种题就直接打表找规律,这是坠吼滴!
#include <cstdio>
#include <cstring> const int maxn = 105, mod = 10000; int n;
struct gao {
int data[100], wei;
gao(void) {
memset(data, 0, sizeof data);
wei = 0;
}
gao operator+(int aa) const {
gao rt;
rt.data[0] = aa;
for (int i = 0; i < wei; ++i) {
rt.data[i] += data[i];
if (rt.data[i] >= mod) {
rt.data[i] -= mod;
++rt.data[i + 1];
}
}
rt.wei = wei + (rt.data[wei]? 1: 0);
return rt;
}
gao operator-(const gao & rhs) const {
gao rt;
for (int i = 0; i < wei; ++i) {
rt.data[i] += data[i] - rhs.data[i];
if (rt.data[i] < 0) {
rt.data[i] += mod;
--rt.data[i + 1];
}
}
rt.wei = wei;
while (rt.wei > 0 && !rt.data[rt.wei - 1]) {
--rt.wei;
}
return rt;
}
gao operator*(int aa) const {
gao rt;
for (int i = 0; i < wei; ++i) {
rt.data[i] += data[i] * aa;
rt.data[i + 1] += rt.data[i] / mod;
rt.data[i] %= mod;
}
rt.wei = wei + (rt.data[wei]? 1: 0);
return rt;
}
void print(void) {
printf("%d", data[wei - 1]);
for (int i = wei - 2; i >= 0; --i) {
printf("%04d", data[i]);
}
}
} f[maxn]; int main(void) {
f[1].data[0] = 1;
f[1].wei = 1;
f[2].data[0] = 5;
f[2].wei = 1;
scanf("%d", &n);
for (int i = 3; i <= n; ++i) {
f[i] = f[i - 1] * 3 - f[i - 2] + 2;
}
f[n].print();
puts("");
return 0;
}
_bzoj1002 [FJOI2007]轮状病毒【瞎搞】的更多相关文章
- 洛谷 P2144 [FJOI2007]轮状病毒
P2144 [FJOI2007]轮状病毒 题目描述 轮状病毒有很多变种.许多轮状病毒都是由一个轮状基产生.一个\(n\)轮状基由圆环上\(n\)个不同的基原子和圆心的一个核原子构成.\(2\)个原子之 ...
- URAL 1203. Scientific Conference(瞎搞)
题目链接 本来觉得这不是经典的贪心吗..果断水一次,wa了,看了看discuss,发现貌似不好水,土土的DP了一下,复杂度很高了,又T了...然后想想单调队列,二分什么的...不好往上加,直接搞了标记 ...
- 【bzoj1002】[FJOI2007]轮状病毒
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4381 Solved: 2393[Submit][Statu ...
- Codeforces Gym 100610 Problem H. Horrible Truth 瞎搞
Problem H. Horrible Truth Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/1006 ...
- 【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
1002: [FJOI2007]轮状病毒 Description 给定n(N<=100),编程计算有多少个不同的n轮状病毒. Input 第一行有1个正整数n. Output 将编程计算出的不同 ...
- bzoj 1002 [FJOI2007]轮状病毒 高精度&&找规律&&基尔霍夫矩阵
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2234 Solved: 1227[Submit][Statu ...
- 生成树的计数(基尔霍夫矩阵):BZOJ 1002 [FJOI2007]轮状病毒
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3928 Solved: 2154[Submit][Statu ...
- BZOJ 1002 [FJOI2007]轮状病毒
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3106 Solved: 1724[Submit][Statu ...
- 1002: [FJOI2007]轮状病毒
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2609 Solved: 1450[Submit][Statu ...
随机推荐
- C#内存管理—职场生存的必修课
前言 在职场中,确立自身的技术水平很重要,因为,如果你被标记成了技术菜鸟,那么你的工作一旦做快了,大家就会一致的认为这个任务比较简单:如果你未如期完成,则会被各种明嘲暗讽,你不但无法获得合理的表扬,还 ...
- Visual Studio VS如何修改代码字体
工具-选项-环境-字体和颜色
- LeetCode 67 Add Binary(二进制相加)(*)
翻译 给定两个二进制字符串,返回它们的和(也是二进制字符串). 比如, a = "11" b = "1" 返回 "100". 原文 Give ...
- 在linux命令行中编译和运行java文件
同时加载编译多个jar包和java文件 在个人平常使用或者当我们把代码部署到linux服务器上的时候,我们经常需要通过命令行编译和运行java文件,网上关于这个的方法大多是通过 javac -cp f ...
- C#调用国家气象局天气预报接口
原文:C#调用国家气象局天气预报接口 一.需求 最近,刚好项目中有天气预报查询功能的需求,要求录入城市名称,获取该城市今日天气信息及相关气象生活辅助信息等. 例如:查询北京市天气 结果为: 今日北京天 ...
- Android项目之HomeHealth基础学习2:Service
一. Service简单介绍 Service是android 系统中的四大组件之中的一个(Activity.Service.BroadcastReceiver.ContentProvider),它跟A ...
- ZrcListView
https://github.com/zarics/ZrcListView
- wampserver64安装时出现计算机缺少MCVR110.DLL无法安装等
在安装wamp完成后运行出现上述问题,是因为wamp版本与DLL不对称.下面给出 wamp64位下载地址 http://www.onlinedown.net/soft/118187.htm vcred ...
- python 【第二篇】python基本数据类型
python数据类型 python的数据类型和大多数编程语言一样,有int,float,long,string但是python有三个特殊的数据类型:列表,元组,字典 如果不知道你的数据类型有什么方法: ...
- Android-support-v4源码查看