DP——51nod1020 逆序排列
来源:互联网 发布:php头部编码 编辑:程序博客网 时间:2024/06/10 20:31
题面:51nod1020
虽然这是5级题的第一个题目,但是作为这种水平的DP的话……
真的好神啊!!!(我貌似从来没有做过这种推状态转移方程的。。。
首先状态就是
从
所以朴素的状态转移方程就是
这样的时间复杂度是
我们可以把
我们把第一个减去第二个,惊奇地发现
所以
这样时间复杂度就
很巧妙是不是?
#include <cstdio>#include <algorithm>#include <cmath>#include <cstring>#include <iostream>#include <ctime>#include <map>#include <queue>#include <cstdlib>#include <string>#include <climits>#include <set>#include <vector>using namespace std;inline int read(){ int k=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){k=k*10+ch-'0';ch=getchar();} return k*f;}const int MOD=1e9+7;int f[1010][20010];int main(){ for(int i=0;i<=1000;i++)f[i][0]=1; for(int i=2;i<=1000;i++) for(int j=1;j<=min(20000,i*(i-1)/2);j++){ f[i][j]=(f[i-1][j]+f[i][j-1])%MOD; if(j-i>=0)f[i][j]=(f[i][j]-f[i-1][j-i]+MOD)%MOD; } int T=read(); while(T--){ int x=read(),y=read(); printf("%d\n",f[x][y]); } return 0;}
阅读全文
1 0
- DP——51nod1020 逆序排列
- 51nod1020 逆序排列(dp)
- 离线+dp 51Nod1020 逆序排列
- 【反序表+DP】51Nod1020[逆序排列]题解
- 51nod 1020:逆序排列 DP
- 51nod 1020 逆序排列(dp+离线)
- 51nod 1020 逆序排列(dp)
- 51nod 1020 逆序排列【DP】
- 【反序表+DP】51Nod 1020 逆序排列
- 51 nod 1020 逆序排列(递推+DP)
- 第八周项目4—逆序排列
- 51NOD 1020 逆序排列
- 51nod-1020 逆序排列
- 51nod 1020 逆序排列
- 51nod 1020 逆序排列
- 51Nod 1020 逆序排列
- 51Nod 1020 逆序排列
- 51nod 1020 逆序排列
- 装逼必备:大型分布式网站术语分析
- linux常用命令01--安装和开关机命令
- Squeezenet中添加OHEM层
- 我的Ruby学习历程之初识循环结构
- 基于模拟退火的遗传算法
- DP——51nod1020 逆序排列
- node.js操作MongoDB
- 牛客网(直通BAT面试算法班)第四章 队列与栈 Day5
- 前端案例分享:京东电梯式轮播
- 使用公式C=(5/9)(F-32)打印下列华氏温度与摄氏温度对照表。
- 正则表达式匹配不包含某些字符串的技巧
- Android源码分析--百分比布局(一)--generateDefaultLayoutParams和generateLayoutParams
- 【模拟面试】网络基础,数据库向
- eclipse版本对应的jdk需求