传送门

Sol

第一问可以考虑按照山的高度从大到小放
但是这样如果遇到高度相同的就不好考虑,那么同时要求数量限制从小到大
这样每次放的时候后面的一定不会影响前面,并且高度相同的时候前面能放的位置后面的也能放
直接乘起来就好了
对于第二问,此时高度相同的会有影响
对于高度相同的一段,强制要求数量限制从小到大,并且后面的位置必须小于前面
设 \(f_{i,j}\) 表示放了 \(i\) 个到 \(j\) 个空位,最后一个放的在最后,的方案数
那么 \(f_{i,j}=\sum_{k\le j}f_{i-1,k}\)
前缀和优化即可,最后把答案乘起来

# include <bits/stdc++.h>
using namespace std;
typedef long long ll;const int maxn(1005);
const int mod(2011);struct Hill {int h, c;inline bool operator < (Hill b) const {return (h ^ b.h) ? h > b.h : c < b.c;}
} h[maxn];int n, f[maxn][maxn];inline int Solve(int l, int r) {register int i, j, len = r - l + 1;for (i = 0; i <= len; ++i)for (j = 0; j <= l; ++j) f[i][j] = 0;for (i = 1; i <= l; ++i) f[0][i] = 1;for (i = 1; i <= len; ++i) {for (j = 1; j <= min(l, h[i + l - 1].c); ++j) f[i][j] = f[i - 1][j];for (j = 1; j <= l; ++j) f[i][j] = (f[i][j] + f[i][j - 1]) % mod;}return f[len][l];
}int main() {register int i, c, ans;scanf("%d", &n);for (i = 1; i <= n; ++i) scanf("%d%d", &h[i].h, &h[i].c);sort(h + 1, h + n + 1);for (ans = 1, i = 2, c = 0; i <= n; ++i) {c = h[i].h == h[i - 1].h ? c + 1 : 0;ans = ans * min(i, h[i].c + c) % mod;}printf("%d ", ans);for (ans = 1, i = 1, c = 0; i <= n; ++i)if (i == n || h[i].h != h[i + 1].h) ans = ans * Solve(i - c, i) % mod, c = 0;else ++c;printf("%d\n", ans);return 0;
}

转载于:https://www.cnblogs.com/cjoieryl/p/10165301.html

BZOJ3193: [JLOI2013]地形生成相关推荐

  1. [JLOI2013]地形生成

    3193 首先按照第一关键字高度倒叙,第二关键字顺序的顺序拍下序 第一问O(n) dp一下 考虑一下第i个山能放在哪些山的后面,对于比第i个山高的,只能放在前关键字个的后面,但排在他的前面的和他一样高 ...

  2. 【JLOI2013合集】BZOJ3090 赛车 BZOJ3091 卡牌游戏 BZOJ3092 删除物品 BZOJ3093 地形生成...

    赛车: 这个题就是水平可见直线.. 水平可见直线怎么做呢.. 就是把所有直线按斜率排序.然后从前往后处理边. 当中维护一个栈.如果当前线和栈顶的交点在栈顶和栈顶-1的交点左边.那么弹掉栈顶.. (可以 ...

  3. ps原始数据清理脚本_创建地形模型一步到位!PS最新2019全球首款3D地形生成插件送给你...

    建过地形的设计同仁们都清楚,要建出一个精确的地形模型基本要靠CAD,SU,GIS,Rhino这些软件协同操作. 一般来说,有现成的CAD原始数据后,整理导入GIS中制作各种分析图,也要花半天时间.如果 ...

  4. Unity2D横版游戏地形生成

    演示视频 横版地形生成 功能: 将地形素材赋值给脚本,脚本会生成对应的地形素材,可以控制生成素材的高度,生成的时间间隔,是否每次随机时间生成,会有一个范围值来进行控制: Mountain 01_tra ...

  5. Unity无限地形生成(基于柏林噪声的简单生成)

    Unity无限地形生成(基于柏林噪声的简单生成) 要求:构建一个户外开放世界游戏,为该游戏添加天空,地形,植物,并支持场景里自由漫游.这里实现一个无限地形的产生: 实现漫游 漫游的功能由玩家移动和摄像 ...

  6. 七日杀unity报错_七日杀地形生成错误 | 手游网游页游攻略大全

    发布时间:2016-01-16 七日杀error initialising错误 七日杀玩不了怎么办.很多玩家打开游戏出现error initialising错误,要怎么解决呢?下面99单机网小编给大家 ...

  7. 读书笔记 PCG in Games 程序化内容生成4 分型、噪声和代理,地形生成

    总起 本文主要基于Procedural Content Generation in Games第四章介绍地形生成,给游戏角色提供可以站立的地面. 关于PCG in Games之前的笔记可见: 第一章读 ...

  8. 【UE4+Houdini+Bridge】程序化地形生成和野外植被撒点工具制作思路

    B站制作过程展示: Houdini To UE4 程序化地形生成制作过程与效果展示 Github Houdini与HDA源文件:Houdini-PCG-Environment-Generator 最终 ...

  9. 基于高度图的三维地形生成算法入门篇 —— 均匀网格地形生成算法

    赵 刚 引言     在三维游戏等建立的虚拟世界中要求虚拟场景具有很高的逼真度,其中的三维地形逼真度是关键之一.然而三维地形的生成和绘制需要巨大的计算量,实景地形的生成还需要地形数据库的支持,在运算能 ...

最新文章

  1. linux apache2.4 php,php5.6+apache2.4+linux如何搭建php环境
  2. python grid用法_Python numpy.mgrid函数方法的使用
  3. PhpStorm代码换行设置
  4. 双边滤波Matlab实现The Bilateral Filter
  5. 无法连接到 recaptcha_汕头精巧的重载连接器报价行情,靠谱的重载连接器出厂价...
  6. android 使用adb远程调试
  7. JSF 2.2在30秒内创建一个自定义Hello World组件
  8. ansible-vault_使用Ansible Vault改善您的DevOps安全游戏
  9. 代理设置。 安卓工作室配置用http代理。gradle可能需要这些http代理设置去访问互联网。例如下载依赖。 你想要复制ide的代理配置到这个项目的gradle属性文件吗?...
  10. win11如何设置并排显示窗口 windows设置并排显示窗口的方法步骤
  11. SpringMVC环境搭建——HelloWorld
  12. EOS 钱包开发(JAVA)
  13. 苹果/安桌点歌系统代码
  14. Android 自定义人体效果图之项目实战
  15. xlsx模块 前端_React读取Excel——js-xlsx 插件的使用
  16. 引擎所有固定变量大全
  17. 计算机专业就业方向与前景以及你所要具备的技能(本科生)
  18. 2022年最新国产单端口1000M Ethernet PHY简介
  19. rospy 让机器人绕圈、矩形行走(碰到障碍物停止)
  20. [附源码]Python计算机毕业设计电子病历系统

热门文章

  1. 应聘python开发工程师_求职意向:Python工程师
  2. 会议室LED高清显示屏
  3. 对刘汝佳蓝书点双连通分量(BCC)模板的理解
  4. 广东省计算机考证技能证
  5. 一个APP原型制作demo
  6. IOzone I/O测试工具使用说明
  7. 超分辨入门之SRCNN(小白版)
  8. matlab simulink 模糊pid控制DCDCbuck
  9. 情怀java手机网游_情怀的游戏名字 | 手游网游页游攻略大全
  10. 柠檬公会office2013_攻占千亿美元游戏市场,柠檬游戏公会中国社区全面启动