【2018.5.12】模拟赛之四-ssl2416 条形图【高精度,dp】
正题
题目大意
第iii行有n−i+1" role="presentation" style="position: relative;">n−i+1n−i+1n-i+1个格子,每一行要求从左到右画#,要求下面哪行的#数不能超过前一行。要求第一行必须有#,求画的方案数。
解题思路
首先一定要高精度,然后就是dp了:
这个dp比较慢是O(n3)O(n3)O(n^3)的
用f[i][j]f[i][j]f[i][j]表示第i行放j个的方案数,然后枚举一个k表示上一行选k个就好了,最后把f都统计一遍。
代码
#include<cstdio>
using namespace std;
int n,s,f[101][101];
int a[10001][26];
void add(int n1,int n2)//高精度
{int z=0;for (int i=1;i<=25;i++){a[n1][i]=a[n1][i]+a[n2][i]+z;z=a[n1][i]/1e8;a[n1][i]%=(int)1e8;}
}
void write(int x)//输出
{int w=25;while (a[x][w]==0) w--;printf("%d",a[x][w]);w--;for (;w>=1;w--){if (a[x][w]/(int)1e7==0) printf("0");//压位if (a[x][w]/(int)1e6==0) printf("0");if (a[x][w]/(int)1e5==0) printf("0");if (a[x][w]/(int)1e4==0) printf("0");if (a[x][w]/(int)1e3==0) printf("0");if (a[x][w]/(int)1e2==0) printf("0");printf("%d",a[x][w]);}
}
int main()
{//freopen("diagrams.in","r",stdin);//freopen("diagrams.out","w",stdout);scanf("%d",&n);for (int i=1;i<=n;i++)for (int j=1;j<=n;j++)f[i][j]=(i-1)*n+j;//分配数组for (int i=1;i<=n;i++){a[f[1][i]][1]=1;//初始化add(s,f[1][i]);//累计}for (int i=2;i<=n;i++){for (int j=1;j<=n-i+1;j++){for (int k=j;k<=n;k++){add(f[i][j],f[i-1][k]);//动态转移}add(s,f[i][j]);//累计}}write(s);
}
【2018.5.12】模拟赛之四-ssl2416 条形图【高精度,dp】相关推荐
- 【2018.4.14】模拟赛之四-ssl2394 剪草【dp】
正题 大意 有n株草,没个时间单位开始时会增长不同的长度.每个时间单位可以将一株草剪成高度为0,求多少时间单位后能够将草的总高度减低为h以下,或用远不能. 解题思路 首先需要一段玄学推理: 可以等草长 ...
- 【2018.3.31】模拟赛之四-ssl2408 句子【dp,字符串】
正题 大意 先给出n个句子,然后给出一个最终句子.最终句子由多个句子加密后组成(可能重复).加密方法就是将字母调换位置,加密代价就是该位置与原来的字母不同的数量.求达到最终句子的最小加密代价 解题思路 ...
- 2018.10.9模拟赛
2018.10.9模拟赛 T1 trade 正解:贪心 据说lyd讲过但并没有印象QAQ,考场上现推浪费了不少时间 其实就开个小根堆,每次把堆顶取出来看它是不是比当前的 a[i]a[i]a[i] 小, ...
- 【2018.3.24】模拟赛之四-ssl2548 旋转【暴力模拟】
正题 大意 给出一块黑块和白块组成的版,将其旋转90°后和之前的黑块叠加,求最初始和每次旋转后的黑块数. 解题思路 暴力模拟不解释 代码 #include<cstdio> #include ...
- 【2018.5.19】模拟赛之四-ssl2435 航空公司【并查集,二分】
正题 题目大意 有n个点,给出坐标,选择所有距离在k之内的边要求联通所有点,求最小的k. 解题思路 垃圾解法 用二分答案然后加并查集求是否联通. 时间复杂度:O(mlogn)O(mlogn)O(mlo ...
- 【2018.4.21】模拟赛之四-ssl2405 巧克力【实际上是模拟】
正题 大意 有n块巧克力,一个a*b的网格,如果网格可以完全包括一块巧克力就可以获得这块巧克力,求最多能获得的巧克力数量 解题思路 枚举点(在巧克力上的)和各种情况,然后判断这种情况包括多少个巧克力, ...
- 【2018.4.7】模拟赛之四-ssl2385 猜数【水题】
正题 大意 给出一些询问和答案,询问内容包括: 1. 是否大于一个数 2. 是否小于一个数 3. 是否大于等于一个数 4. 是否小于等于一个数 这是一个-10000到10000的数 求这个数的最小值 ...
- 【2018.3.17】模拟赛之四-ssl1864jzoj1368 燃烧木棒【最短路,Floyd】
正题 链接 需要纪中OJ账号 有n条木棒,长度为1或根号2,给出每根木棒两头的坐标,和燃烧需要的时间.只能从一个木棒的一头开始点火,求燃烧完所有木棒所需要的最短时间. 输入输出(需要自取) Input ...
- 【2018.3.10】模拟赛之四-ssl2133 腾讯大战360【SPAF,图论,最短路径】
目录地址 前言 打错了一个地方之接60,还有输出"Peace"能拿60.还有题目坑爹害得我用了哈希,可以无视 QAQ 正题 有一个n*n的图,有m条边,不知道几个城市,给出两个位置 ...
最新文章
- 区块链相关论文研读6: FASTKITTEN,关于比特币的实用智能合约
- Python DB-API 2.0规范
- 将动画装入MicroPython I2C OLED
- 行业短信 运营思路_飞信、易信之后 三大运营商要借5G再战微信
- 使用matlab版卷及神经网络 MatconvNe和预训练的imageNet进行图像检Image retrieval using MatconvNet and pre-trained imageNet
- OS / Linux / epoll 各种事件解析
- centos 6.7 mysql rpm_CentOS 6.7 下RPM方式安装MySQL 5.6
- 使用IntelliJ, 让lombok生效的方式
- 多线程的那点儿事(之读写锁)
- A few thoughts about Open Source Software
- Pytorch学习笔记(7)——模型放GPU上经常报CUDA错该怎么办
- 银行测试汉字录入软件,小键盘数字练习软件(银行及各行业文员专用)
- 迈信ep100交流伺服 含原理图、PCB图、C源代码等生产资 料。
- QQ浏览器侧边栏添加腾讯翻译君
- 搜狗提交软件之搜狗泛目录大量泛收录
- 英语foteball足球
- excel 第15讲:条件格式与公式
- 别再问我为什么你敲的代码很水了!
- 如何在App中打开设置、appstore或其他App(区别iOS 10及之前系统)
- java编译器对字符串+运算的优化导致的有趣现象
热门文章
- setresult()java_Java ResultSet getType()方法与示例
- C语言 time函数 开销,C语言: 函数调用的开销
- python回到本次循环开头_Python中,当一个while循环判断为false,结束这个循环的时候,怎么进入到下一个循环中?...
- 机器学习之超参数调优——超参数调优的方法
- 背包(二维数组版和一维数组版)
- leetcode104. 二叉树的最大深度(层序遍历09)
- libgo 支持mysql,loadrunner通过使用libmysql.dll完成mysql的测试-Go语言中文社区
- [数据结构]邻接矩阵和邻接表存储的图DFS,BFS算法时间复杂度分析
- AcWing 3195. 有趣的数
- C++unique函数应用举例