传送门

题意:给出$N$个直角三角形拼图和$M \times M$的网格,第$i$个直角三角形水平直角边边长为$\frac{1}{a_i}$,垂直直角边边长为$\frac{1}{b_i},$规定直角三角形只能直角顶点在右上方地摆放,直角顶点必须摆放在网格的顶点处,且水平直角边和垂直直角边必须与网格的某一条线重合,三角形可以越出网格。现在你可以将每个三角形都放大正整数$K$倍,求存在一种摆放方案使得存在一条只经过直角三角形覆盖区域的$(0,0)$到$(M,M)$的路径的$K$的最小值。$N , M \leq 100 , a_i , b_i \leq 10^6$


显然是有二分性质的

首先考虑到交换两个直角三角形对答案实际上没有影响,所以拼图的顺序是无所谓的。

所以我们选择DP作为二分的check。设$f_{i,j}$表示前$i$个拼图在横坐标为$j$时最大的纵坐标大小,转移方程用枚举当前三角形直角顶点的位置加上相似推一下就行。

 #include<bits/stdc++.h>
#define LOJ
//This code is written by Itst
#define ll long long
using namespace std; inline int read(){
int a = ;
bool f = ;
char c = getchar();
while(c != EOF && !isdigit(c)){
if(c == '-')
f = ;
c = getchar();
}
while(c != EOF && isdigit(c)){
a = (a << ) + (a << ) + (c ^ '');
c = getchar();
}
return f ? -a : a;
} ll tri[][] , dp[] , N , M; bool check(int mid){
memset(dp , -0x3f , sizeof(dp));
dp[] = ;
for(int i = ; i <= N ; i++)
for(int j = M ; j >= ; j--)
for(int k = j ; k >= && (j - k) * tri[i][] <= mid ; k--)
dp[j] = max(dp[j] , dp[k] + (mid - (j - k) * tri[i][]) / tri[i][]);
return dp[M] >= M;
} int main(){
#ifdef LOJ
freopen("500.in" , "r" , stdin);
//freopen("500.out" , "w" , stdout);
#endif
N = read();
M = read();
for(int i = ; i <= N ; i++){
tri[i][] = read();
tri[i][] = read();
}
int L = , R = 1e8;
while(L < R){
int mid = L + R >> ;
check(mid) ? R = mid : L = mid + ;
}
cout << L;
return ;
}

LOJ500 ZQC的拼图 二分答案、DP的更多相关文章

  1. [LOJ500]ZQC的拼图

    题目大意: 给你一个m*m的格子,让你往里面放给定的直角三角形,直角顶点必须放在右上角且不能翻转,但是可以把所有给定的三角形放大一个整数倍k,问至少放大几倍能使格子的左下角和右上角连起来?(可以超出边 ...

  2. BZOJ_1044_[HAOI2008]木棍分割_二分答案+DP+单调队列

    BZOJ_1044_[HAOI2008]木棍分割_二分答案+DP Description 有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个 ...

  3. 洛谷 P1800 software_NOI导刊2010提高(06)(二分答案+DP检验)

    P1800 software_NOI导刊2010提高(06) 标签 二分答案 难度 普及/提高- 题目描述 一个软件开发公司同时要开发两个软件,并且要同时交付给用户,现在公司为了尽快完成这一任务,将每 ...

  4. BZOJ 1044: [HAOI2008]木棍分割(二分答案 + dp)

    第一问可以二分答案,然后贪心来判断. 第二问dp, dp[i][j] = sigma(dp[k][j - 1]) (1 <= k <i, sum[i] - sum[k] <= ans ...

  5. cogs 2652. 秘术「天文密葬法」(0/1分数规划 长链剖分 二分答案 dp

    http://cogs.pro:8080/cogs/problem/problem.php?pid=vSXNiVegV 题意:给个树,第i个点有两个权值ai和bi,现在求一条长度为m的路径,使得Σai ...

  6. 2019杭电多校第三场hdu6606 Distribution of books(二分答案+dp+权值线段树)

    Distribution of books 题目传送门 解题思路 求最大值的最小值,可以想到用二分答案. 对于二分出的每个mid,要找到是否存在前缀可以份为小于等于mid的k份.先求出这n个数的前缀和 ...

  7. 洛谷P3957 跳房子 题解 二分答案/DP/RMQ

    题目链接:https://www.luogu.org/problem/P3957 这道题目我用到了如下算法: 线段树求区间最大值: 二分答案: DP求每一次枚举答案g时是否能够找到 \(\ge k\) ...

  8. UVALive 5983 二分答案+dp

    想了很久都想不出怎么dp,然后发现有些例子,如果你开始不确定起始值的话,是不能dp的,每种状态都有可能,所以只能二分一个答案,确定开始的val值,来dp了. #include <cstdio&g ...

  9. BZOJ 1044 木棍分割(二分答案 + DP优化)

    题目链接  木棍分割 1044: [HAOI2008]木棍分割 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3830  Solved: 1453[S ...

随机推荐

  1. 【面试】Python面试题库

    https://blog.csdn.net/ChenVast/article/details/81451460 第一部分 Python基础篇(80题) 为什么学习Python? 通过什么途径学习的Py ...

  2. ASP.NET MVC WebAPI 资源整理

    注:这是收集给公司同事学习的资料,入门级别的. 使用ASP.Net WebAPI构建REST服务(一)——简单的示例 http://blog.csdn.net/mengzhengjie/article ...

  3. Git应用—05Git文件冲突合并的几种情况(转载)

    git文件冲突合并的几种情况 https://xieye.iteye.com/blog/2433229 本文描述了git冲突的几种常见情况和解决方案,老鸟请直接忽略本文.假设冲突文件是 test/Te ...

  4. 无法给MySQL root用户修改密码的解决方法

    本人编译安装完MySQL数据库,想给root用户修改密码,结果无法修改,并且报错,报错大概信息如下: mysqladmin: connect to server at 'localhost' fail ...

  5. 程序员Web面试之jQuery

    又到了一年一度的毕业季了,青春散场,却等待下一场开幕. 在求职大军中,IT行业的程序员.码农是工科类大学生的热门选择之一, 尤其是近几年Web的如火如荼,更是吸引了成千上万的程序员投身其中追求自己的梦 ...

  6. Java并发编程(三)Thread类的使用

    一.线程的状态 线程从创建到最终的消亡,要经历若干个状态.一般来说,线程包括以下这几个状态:创建(new).就绪(runnable).运行(running).阻塞(blocked).time wait ...

  7. shell下变量比较最佳实践

    https://stackoverflow.com/questions/13617843/unary-operator-expected If you know you're always going ...

  8. Spark ML逻辑回归

    import org.apache.log4j.{Level, Logger} import org.apache.spark.ml.classification.LogisticRegression ...

  9. [20180423]flashback tablespace与snapshot standby.txt

    [20180423]flashback tablespace与snapshot standby.txt --//缺省建立表空间是打开flashback on,如果某个表空间flashback off, ...

  10. HashTree【转】

    http://blog.csdn.net/yang_yulei/article/details/46337405 在各种数据结构(线性表.树等)中,记录在结构中的相对位置是随机的.因此在机构中查找记录 ...