题意

对于一个(n+1)*(n+1)的矩阵,第一列和第一排为1,其他位置为1当且仅当上方和左方有一个1,其他为0;

对于100%的数据,n<=1e9

题解

稍微画了一下,感觉从图像看不大出来,就去打了一个表:

1,3,7,9,17,21,25,27,43,51,59,63,71,75,81;

这种东西一般就求差再看看,就会发现:2,4,2,8,4,4,2,16,8,8,4,8,4,4,2

这样还看不大出来,再分析数据对于30%的数据n=2k-1,发现这个范围的答案就是3k,于是直觉就分出了组

2

4,2

8,4,4,2

16,8,8,4,8,4,4,2

那么就比较明显了吧,下面一排前一半是上一排*2,后一半就是上一排。

那么就想到一种做法,先把n分成2k+n',就得到3k,剩下n'部分再递归处理,他是一个组的一部分,再这个组的前一半的部分就是上一个组的一半,在这个组后一半的部分直接递归。

注意记忆化就ok,可以用map记忆化,其实差不多,map还有查找速度,虽然数组只能只能开1e6。

#include<bits/stdc++.h>
using namespace std;#define ll long long
const int maxn=1000005;
ll n;
ll ans,f[35][maxn];int get(int x){int ret=-1;while(x){x>>=1;ret++;}return ret;
}ll qpow(ll a,ll b){ll ret=1;while(b){if(b&1) ret*=a;a*=a;b>>=1;}return ret;
}ll dfs(int s,int k){//第s组,前k项 if(s==1) return  2;if(k<maxn&&f[s][k]) return f[s][k];ll mid=(1<<(s-2)),ret;if(k<=mid) ret=dfs(s-1,k)<<1;else ret=dfs(s-1,k-mid)+(dfs(s-1,mid)<<1);if(k<maxn) f[s][k]=ret;return ret;
}int main(){freopen("c.in","r",stdin);freopen("c.out","w",stdout);scanf("%lld",&n);n++;int k=get(n);ans+=qpow(3,k);n-=(1<<k);if(!n) {printf("%lld",ans);return 0;}ans+=dfs(k+1,n);printf("%lld",ans);
}

View Code

不过他们的规律好像和我不大一样,他们直接从答案入手,给出代码,具体原因之后再看。(code from ltw)

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<cmath>
#include<map>
using namespace std;
long long n;
map < int,long long > mp;
long long solve (long long x){if (x==1) return 1;if (x==2) return 3;if (mp[x]) return mp[x];return mp[x]=2*solve (ceil ((double)(x/2.0)))+solve (floor ((double(x/2.0))));
}
int main(){freopen ("c.in","r",stdin); freopen ("c.out","w",stdout);scanf ("%lld",&n);printf ("%lld",solve (n+1));
}

View Code

还有看图像找规律的,三个1组成一个小三角形,再三个又是一个更大的。

先取一个lowbit(就是分解成2k+n'),然后再怎么搞搞就OK了。(咱也不知道,咱也不敢问)

不过正解好像是数位DP?讲这个图形旋转45°就是杨辉三角?然后在利用Lucas定理?

话说今天数论都是打表搞的,这真是一个好方法。(掩饰自己不会数论)

顺便%%sxk  dalao,AK

转载于:https://www.cnblogs.com/sto324/p/11266357.html

暑假D16 T3 密道(数位DP? 打表找规律)相关推荐

  1. paulzhou的数学?TAT? 【二分打表找规律】

    paulzhou的数学?TAT? Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Tota ...

  2. CodeForces - Insertion Sort(打表找规律)

    题目链接:http://codeforces.com/gym/101955/problem/C Time limit:6.0 s Memory limit:1024 MB Problem Descri ...

  3. 点分治问题 ----------- P3727 曼哈顿计划E[点分治+博弈SG函数打表找规律]

    题目链接 解题思路: 1.首先对于每个操作我们实际上是一个博弈问题 对于k=1的操作就是很基础的NIM游戏就是找到一条链的异或和为0 对于k=2的操作通过达打表找规律: 如果s是奇数那么偶数的SG函数 ...

  4. Yet Another Meme Problem(打表找规律)

    Try guessing the statement from this picture http://tiny.cc/ogyoiz. You are given two integers AA an ...

  5. hdu_5894_hannnnah_j’s Biological Test(打表找规律)

    题目链接:hdu_5894_hannnnah_j's Biological Test 题意: 有n个不同的位置围成一个圈,现在要安排m个人坐,每个人至少的间隔为k,问有多少种安排 题解: 先打表找规律 ...

  6. D. Pythagorean Triples(1487D)(打表找规律 + 二分)

    D. Pythagorean Triples(1487D)(打表找规律 + 二分) 题目来源:D. Pythagorean Triples 题意: 给定一个 n,求满足以下条件的数对 (a, b, c ...

  7. Ural 2045. Richness of words 打表找规律

    2045. Richness of words 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=2045 Description For ...

  8. Ural 2037. Richness of binary words 打表找规律 构造

    2037. Richness of binary words 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=2037 Descripti ...

  9. [国家集训队]整数的lqp拆分 数学推导 打表找规律

    题解: 考场上靠打表找规律切的题,不过严谨的数学推导才是本题精妙所在: 求:$\sum\prod_{i=1}^{m}F_{a{i}}$ 设 $f(i)$ 为 $N=i$ 时的答案,$F_{i}$ 为斐 ...

最新文章

  1. 第一行代码学习笔记第六章——详解持久化技术
  2. treeset java_Java TreeSet first()方法与示例
  3. 计算机应用杂志投稿,计算机类杂志 (可网上投稿)
  4. 图片--Android加载图片导致内存溢出(Out of Memory异常)
  5. Apache Solr 未授权上传(RCE)漏洞(CVE-2020-13957)的原理分析与验证
  6. hashmap相同的key会覆盖吗_【简单了解系列】从基础的使用来深挖HashMap
  7. java报错: 类重复: newemission.calculate_java当中的继承(一)
  8. xpath用于HTML文档通过元素,通过Xpath定位元素
  9. 第一次申请去美国面签,需要注意哪些事项提高成功率?
  10. 按键精灵手机助手计算时间差
  11. DNS(二)--dns的双向解析 内外网访问得到不同ip
  12. WPF基本控件的简介(二)
  13. 图像处理:连通区域算法
  14. 大数据运维架构师培训(5):大数据管理平台(Cloudera CM/CDH/CDP)
  15. 索引及其背后的数据结构(顺带介绍了一下子查询和合并查询)
  16. 关于排版的小软件的实现
  17. termux搭建mc服务器
  18. 进程与程序的区别和联系
  19. 如何在微信公众号的文章推送中展示bilibili的视频
  20. html的介绍与示例

热门文章

  1. 【面试题】将ip地址转换成整数
  2. 【C语言】童年的扫雷游戏(递归展开)你也可以做出来,将他发给你的网瘾室友玩吧 ——含详细注释及解析
  3. 腾讯云cos对象存储服务文件上传api就是一个大坑
  4. 照片怎么无损放大尺寸,三种方法无损放大照片
  5. 阿里云服务器ECS与传统服务器有哪些区别?
  6. php浏览器跟踪调试,Phpstorm怎么在命令行以及浏览器中调试
  7. 萤石云枪机球机云台接入控制实战-含源码-layui
  8. NLPCC2021.10.14
  9. c++ 常用总结(三)
  10. 《伟大是熬出来的》冯仑与年轻人闲话人生之三