【noi 2.6_9290】&【poj 2680】Computer Transformation(DP+高精度+重载运算符)
题意:给一个初始值1,每步操作将1替换为01,将0替换为10。问N步操作后有多少对连续的0。
解法:f[i]表示第i步后的答案。可以直接打表发现规律——奇数步后,f[i]=f[i-1]*2-1;偶数步后,f[i]=f[i-1]*2+1;
至于原因——我只能简单说一点。第i步后的答案可由i-1步后的“01”+“1”+“0”的个数推出,而“01”*2+“1”+“0”=01串的总个数。用x表示i-1步后的“01”的个数,则f[i]=x+(2^(i-1)-x*2);但这样复杂度挺高,我也不知道怎么优化了。
noi oj上的实际数据没有1000这么大,在65以内,用long long也可以过。
1 #include<cstdio>
2 #include<cstdlib>
3 #include<cstring>
4 #include<iostream>
5 using namespace std;
6 #define N 1010
7
8 int n;
9 long long f[N];
10
11 int main()
12 {
13 f[1]=0;
14 for (int i=2;i<=N;i++)
15 {
16 if (i%2) f[i]=f[i-1]*2-1;
17 else f[i]=f[i-1]*2+1;
18 }
19 while(~scanf("%d",&n)) printf("%lld\n",f[n]);
20 return 0;
21 }
无高精度
我高精度的不知为何在noi oj上AC,在poj上WA。若有大牛能纠正我,请多多指教~
1 #include<cstdio>
2 #include<cstdlib>
3 #include<cstring>
4 #include<iostream>
5 using namespace std;
6 #define N 1000
7
8 struct node
9 {
10 int s[210];
11 int l;
12 node() {l=0;memset(s,0,sizeof(s));}
13 };
14 node f[N+10];
15
16 node operator*(node x,int y)//不可省掉构成运算符左右的整型
17 {
18 node z;
19 z.l=x.l;
20 for (int i=1;i<=z.l;i++)
21 {
22 z.s[i]+=x.s[i]*2;
23 if (z.s[i]>9) z.s[i+1]+=z.s[i]/10,z.s[i]%=10;
24 }
25 while (z.s[z.l+1]) z.l++;
26 return z;
27 }
28 node operator-(node x,int y)
29 {
30 node z=x;
31 int t=1;
32 z.s[t]--;
33 while (z.s[t]<0) z.s[t]+=10,z.s[++t]--;
34 while (!z.s[z.l]) z.l--;
35 return z;
36 }
37 node operator+(node x,int y)
38 {
39 node z=x;
40 int t=1;
41 z.s[t]++;
42 while (z.s[t]>9) z.s[t+1]+=z.s[t]/10,z.s[t++]%=10;
43 while (z.s[z.l+1]) z.l++;
44 return z;
45 }
46 void print(node x)
47 {
48 for (int i=x.l;i>=1;i--)
49 printf("%d",x.s[i]);
50 printf("\n");
51 }
52 int main()
53 {
54 freopen("a.in","r",stdin);
55 freopen("a.out","w",stdout);
56 f[1].l=1,f[1].s[1]=0;
57 for (int i=2;i<=N;i++)
58 {
59 if (i%2) f[i]=f[i-1]*2-1;
60 else f[i]=f[i-1]*2+1;
61 }
62 int n;
63 while(~scanf("%d",&n)) print(f[n]);
64 return 0;
65 }
高精度+重载运算符
P.S.重载运算符 不可省掉构成运算符左右的2个类型,例如:整型。
【noi 2.6_9290】&【poj 2680】Computer Transformation(DP+高精度+重载运算符)的更多相关文章
- 【noi 2.6_9280】&【bzoj 1089】严格n元树(DP+高精度+重载运算符)
题意:定义一棵树的所有非叶节点都恰好有n个儿子为严格n元树.问深度为d的严格n元树数目. 解法:f[i]表示深度为<=i的严格n元树数目.f[i]-f[i-1]表示深度为i的严格n元树数目.f[ ...
- HOJ 2148&POJ 2680(DP递推,加大数运算)
Computer Transformation Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4561 Accepted: 17 ...
- Computer Transformation(规律,大数打表)
Computer Transformation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/ ...
- HDU 1041 Computer Transformation (简单大数)
Computer Transformation http://acm.hdu.edu.cn/showproblem.php?pid=1041 Problem Description A sequenc ...
- hdu_1041(Computer Transformation) 大数加法模板+找规律
Computer Transformation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/ ...
- (大数)Computer Transformation hdu1041
Computer Transformation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/ ...
- POJ.3624 Charm Bracelet(DP 01背包)
POJ.3624 Charm Bracelet(DP 01背包) 题意分析 裸01背包 代码总览 #include <iostream> #include <cstdio> # ...
- Computer Transformation(简单数学题+大数)
H - Computer Transformation Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d &am ...
- POJ 2995 Brackets 区间DP
POJ 2995 Brackets 区间DP 题意 大意:给你一个字符串,询问这个字符串满足要求的有多少,()和[]都是一个匹配.需要注意的是这里的匹配规则. 解题思路 区间DP,开始自己没想到是区间 ...
随机推荐
- 【Flutter】功能型组件之颜色和主题
前言 Color类中颜色以一个int值保存,显示器颜色是由红.绿.蓝三基色组成,每种颜色占8比特,存储结构如下: Bit(位) 颜色 0-7 蓝色 8-15 绿色 16-23 红色 24-31 Alp ...
- alter column和modify column
5.6中,发现其实alter column 和更改modify column 步骤是一样的 mysql> create table xs(name varchar(12),age int def ...
- 【设计模式】Java设计模式精讲之原型模式
简单记录 - 慕课网 Java设计模式精讲 Debug方式+内存分析 & 设计模式之禅-秦小波 文章目录 1.原型模式的定义 原型-定义 原型-类型 2.原型模式的实现 原型模式的通用类图 原 ...
- 检查Mysql主从状态
.检查MySQL主从同步状态 #!/bin/bash USER=bak PASSWD=123456 IO_SQL_STATUS=$(mysql -u$USER -p$PASSWD -e show s ...
- 鸿蒙的fetch请求加载聚合数据的前期准备工作-手动配置网络权限
目录: 1.双击打开"config.json"文件 2.找到配置网络访问权限位置1 3.配置内容1 4.默认访问内容是空的 5.添加配置内容2 6.复制需要配置的网络二级URL 7 ...
- me21n增强BADI:ME_PROCESS_PO_CUST之process_account
当实施ME_PROCESS_PO_CUST这个badi来增强ME21N的时候,用了到方法process_account,既对ME21N的行项目的科目分配做增强.主要用到如下类: IF_PURCHASE ...
- 基于Redo Log和Undo Log的MySQL崩溃恢复流程
在之前的文章「简单了解InnoDB底层原理」聊了一下MySQL的Buffer Pool.这里再简单提一嘴,Buffer Pool是MySQL内存结构中十分核心的一个组成,你可以先把它想象成一个黑盒子. ...
- Redis 核心篇:唯快不破的秘密
天下武功,无坚不摧,唯快不破! 学习一个技术,通常只接触了零散的技术点,没有在脑海里建立一个完整的知识框架和架构体系,没有系统观.这样会很吃力,而且会出现一看好像自己会,过后就忘记,一脸懵逼. 跟着「 ...
- proxmox ve系统绑定上联外网出口bond双网卡
背景描述:一个客户搭建proxmox ve系统,要求上联出口双网卡绑定bond, proxmox ve下载地址:超链接 记录日期:2020/5/9 前期准备:服务器接好2个网卡 交换机:H3C 1.p ...
- 通俗易懂的解释:什么是API
API 全称 Application Programming Interface,即应用程序编程接口. 看到这里,急性子的小白同学马上就憋不住了:这不管是英文还是中文我每个字都懂啊,只是凑一块就不知道 ...