2018.10.17校内模拟赛:T2神光
题面:pdf
首先排序,二分,然后怎么判定是否可行。
最简单的思路是,dp[i][j][k],到第i个,用了j次红光,k次绿光,前i个点都选上了,是否可行。然后转移就行。
然后考试的时候就想到这了,往后没想到。于是贪心,乱搞,和n^3dp拍了几千组随机数据。然后,一共90。其中贪心可得80。
上面的dp中,结果只能是0/1,于是可以考虑减掉一维,让结果表示一维。
n^2 dp:感觉挺奇妙的。f[i][j]红的用了i次,绿的用了j次,最远到什么位置。dp[i][j]=max ( P[dp[i-1][j]+1], Q[dp[i][j-1]+1] )。其中 P[k]表示使用一次红光,能从第 k 座法坛向右(正向为右)连续摧毁到第几座,Q[k]表示使用一次绿光,能从第k座法坛向右连续摧毁到第几座。 P和Q数组可以通过预处理得到。
其他的思路:f[i][j]到i,用了j次红光的时候,最少的绿光次数。
代码:
/*
* @Author: mjt
* @Date: 2018-10-17 16:16:28
* @Last Modified by: mjt
* @Last Modified time: 2018-10-17 16:40:30
*/
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<iostream>
#include<cctype>
#include<set>
#include<vector>
#include<queue>
#include<map>
#define fi(s) freopen(s,"r",stdin);
#define fo(s) freopen(s,"w",stdout);
using namespace std;
typedef long long LL; inline int read() {
int x=,f=;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-;
for(;isdigit(ch);ch=getchar())x=x*+ch-'';return x*f;
} const int N = ; int a[N], P[N], Q[N], f[N][N], n, R, G; bool check(int x) {
memset(f, , sizeof(f));
memset(P, , sizeof(P));
memset(Q, , sizeof(Q));
for (int i=; i<=n; ++i) {
for (int j=i; j<=n; ++j) {
if (a[j] - a[i] + <= x) P[i] = j;
if (a[j] - a[i] + <= x + x) Q[i] = j;
}
}
P[n + ] = Q[n + ] = n;
for (int i=; i<=R; ++i)
for (int j=; j<=G; ++j) {
if (i) f[i][j] = max(f[i][j], P[f[i - ][j] + ]);
if (j) f[i][j] = max(f[i][j], Q[f[i][j - ] + ]);
}
return f[R][G] == n;
} int main() {
n = read(), R = read(), G = read();
for (int i=; i<=n; ++i) a[i] = read();
sort(a + , a + n + );
if (R + G >= n) {
cout << ; return ;
}
int L = , R = a[n] - a[] + , ans = R;
while (L <= R) {
int mid = (L + R) >> ;
if (check(mid)) ans = mid, R = mid - ;
else L = mid + ;
}
cout << ans;
return ;
}
2018.10.17校内模拟赛:T2神光的更多相关文章
- 2018.10.30 NOIp模拟赛T2 数字对
[题目描述] 小 H 是个善于思考的学生,现在她又在思考一个有关序列的问题. 她的面前浮现出一个长度为 n 的序列{ai},她想找出一段区间[L, R](1 <= L <= ...
- 10.17 NOIP模拟赛
目录 2018.10.17 NOIP模拟赛 A 咒语curse B 神光light(二分 DP) C 迷宫maze(次短路) 考试代码 B 2018.10.17 NOIP模拟赛 时间:1h15min( ...
- EZ 2018 06 17 NOIP2018 模拟赛(十九)
这次的题目难得的水,但是由于许多哲学的原因,第二题题意表述很迷. 然后是真的猜题意了搞了. 不过这样都可以涨Rating我也是服了. Upt:链接莫名又消失了 A. 「NOIP2017模拟赛11.03 ...
- 2018.10.16 NOIP模拟赛解题报告
心路历程 预计得分:\(100 + 100 + 20 = 220\) 实际得分:\(100 + 100 + 30 = 230\) 辣鸡模拟赛.. T1T2都是一眼题,T3考验卡常数还只有一档暴力分. ...
- 2018.10.29 NOIP2018模拟赛 解题报告
得分: \(70+60+0=130\)(\(T3\)来不及打了,结果爆\(0\)) \(T1\):简单的求和(点此看题面) 原题: [HDU4473]Exam 这道题其实就是上面那题的弱化版,只不过把 ...
- 2018.10.03 NOIP+ 模拟赛 解题报告
得分: \(30+5+0=35\)(考得真不咋滴) \(T1\):奥义商店(点此看题面) 以为很简单,对着这题想了一个多小时,最后果断打了个暴力交了... ... 看完题解发现其实也不是很难. 对于\ ...
- 2018.10.26 NOIP2018模拟赛 解题报告
得分: \(0+10+10=20\)(\(T1\)死于假题面,\(T3\)死于细节... ...) \(P.S.\)由于原题是图片,所以我没有上传题目描述,只有数据. \(T1\):颜料大乱斗(点此看 ...
- 2018.10.24 NOIP2018模拟赛 解题报告
得分: \(100+0+100=200\)(\(T2\)悲惨爆\(0\)) \(P.S.\)由于原题是图片,所以我没有上传题目描述,只有数据. \(T1\):query(点此看题面) 熟悉主席树的人都 ...
- 2018.02.12 noip模拟赛T2
二兵的赌注 Description游戏中,二兵要进入了一家奇怪的赌场.赌场中有n个庄家,每个庄家都可以猜大猜小,猜一次一元钱.每一次开彩前,你都可以到任意个庄家那里下赌注.如果开彩结果是大,你就可以得 ...
随机推荐
- AESUtil 加密
package com.hxqc.basic.dependency.util; import org.apache.commons.lang.StringUtils; import sun.misc. ...
- size和len
size函数只能用于计算array,不能用于计算list,返回的是数组的元素个数 len函数既可以计算array,也可以计算list >>> a = np.array([1,2]) ...
- list详解
#include <iostream> #include <vector> #include <list> std::list<std::string> ...
- textarea多行文本框自适应高度
<script src="https://cdn.bootcss.com/jquery/1.8.1/jquery.js"></script> <scr ...
- LeetCode刷题(数据库)---- 超过5名学生的课
题:请列出所有超过或等于5名学生的课. 有一个courses 表 ,有: student (学生) 和 class (课程). 例如,表: +---------+------------+ | stu ...
- ThinkPHP里面用原生SQL
public function rewardlog(){ $adminNav = C('ADMIN_NAV'); $adminNav[1]['class'] = 'cur'; $this->as ...
- 通讯协议(一)HTTP协议
协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器.目前我们使 ...
- NSOJ 4621 posters (离散化+线段树)
posters 时间限制: 1000ms 内存限制: 128000KB 64位整型: Java 类名: 上一题 提交 运行结果 统计 讨论版 下一题 题目描述 The citizens of ...
- Java中关于Servlet中请求中文乱码及文件下载
1,Servlet请求响应中文乱码问题 package com.demo.servlet; import java.io.PrintWriter; import java.io.IOException ...
- MySQL索引优化经验总结
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引 ...