Contest Setting 2018 ICPC Pacific Northwest Regional Contest dp
时间:2019-03-26
本文章向大家介绍Contest Setting 2018 ICPC Pacific Northwest Regional Contest dp,主要包括Contest Setting 2018 ICPC Pacific Northwest Regional Contest dp使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目:https://vj.69fa.cn/12703be72f729288b4cced17e2501850?v=1552995458
dp
这个题目网上说是dp+离散化
这个题目要对这些数字先处理然后进行dp,
这个处理值得学习一下,就是把数字范围为1~1e9,转化成一个顺序列表,这个顺序列表每一个不同的位置含有不同的难度,
dp[i][j]代表前面i种选出j种的方案数。
#include <cstdio> #include <iostream> #include <cstdlib> #include <cstring> #include <algorithm> #include <cmath> #include <queue> #define inf 0x3f3f3f3f using namespace std; typedef long long ll; const int mod = 998244353; const int maxn = 1010; int a[maxn], b[maxn], c[maxn]; ll dp[maxn][maxn]; int main() { int n, k; cin >> n >> k; for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); b[i] = a[i]; } memset(dp, 0, sizeof(dp)); memset(c, 0, sizeof(c)); sort(a + 1, a + 1 + n); int m = unique(a + 1, a + 1 + n) - (a + 1); for(int i=1;i<=n;i++) { b[i] = lower_bound(a + 1, a + 1 + m, b[i]) - a; c[b[i]]++; } for (int i = 0; i <= m; i++) dp[i][0] = 1; for(int i=1;i<=m;i++) { for(int j=1;j<=k;j++) { dp[i][j] = ((dp[i - 1][j - 1] * c[i]) % mod + dp[i - 1][j]) % mod; } } printf("%lld\n", dp[m][k]); return 0; }
- 某开源框架从注入到Getshell
- HLS Lesson4-例子
- Docker初探(一)-有关docker的介绍和简单使用
- MySQL绕过WAF实战技巧
- 注意了,使用XSS平台的你可能被“偷窥”
- 挖洞经验 | 命令注入突破长度限制
- 预防SQL注入攻击之我见
- 企业网站架构之Nginx详解原理以及工作模块;源码Lnmp架构
- 【自然框架】——页面基类与设计模式(二) 模板模式
- HLS Lesson17-数组优化:数组映射和重组
- HLS Lesson16-数组优化:数组分割
- HLS Lesson15-for循环优化:其他方法
- 对自己的上网搜索记录进行爬虫是怎样一种体验
- HLS Lesson13-for循环优化:合并
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CentOS7安装配置 Redis的方法步骤
- Linux下Oracle如何导入导出dmp文件详解
- Linux中samba服务器的搭建教程
- linux环境搭建图数据库neo4j的讲解
- Linux编程之ICMP洪水攻击
- linux搭建squid代理服务器的完整步骤
- 使用wget递归镜像网站
- 整理Linux中字符串的相关操作技巧
- Ubuntu 16.04下无法安装.deb的解决方法
- 关于linux中系统输入输出的管理详解
- Linux下IP设置脚本的实例及遇到问题解决办法
- Linux与Windows文件互传(VMWare)
- 如何测试Linux下tcp最大连接数限制详解
- Linux中利用Vim对文件进行密码保护的方法详解
- Linux中禁止用户修改/重置密码