[CSP-S模拟测试]:周(week)(搜索)
题目描述
退役之后,$liu\_runda$总会想起学$OI$的时候自己怎样被郭神虐爆……
$liu\_runda$学文化课的时候想要学$OI$,学$OI$的时候想要学文化课。为了解决矛盾,他决定以周为单位安排文化课和$OI$的学习。例如:学$1$周文化课,学$1$周$OI$,学$1$周文化课,学$2$周$OI$,学$2$周文化课……
距离他退役还有$N$周。他想合理安排这$N$周的学习内容使得自己的知识水平在$N$周之后尽量高。一个人的$OI$水平$LevelOI$和文化课水平$LevelWHK$的乘积等于知识水平$LevelZS$。具体来说,$LevelOI$和$LevelWHK$都是一个整数,而$LevelZS=LevelOI\times LevelWHK$。
在这$N$周之前,$liu\_runda$太颓了,故一开始他的$OI$水平为$0$,文化课水平为$0$。在第$i$周,如果他学习文化课,他的文化课水平提高$a_i$,$OI$水平降低$b_i$;如果他学习$OI$,他的$OI$水平提高$c_i$,文化课水平降低$d_i$。$OI$水平和文化课水平的最大值没有限制,但最低不会小于$0$。即,如果$OI$水平/文化课水平不足$x$的时候减少了$x$,那么将变为$0$而不是一个负数。
$liu\_runda$现在实在是太咸鱼了,求不出他能够达到的最高知识水平,于是造了个题出到联考里,要选手求出他能够达到的最高的知识水平$LevelZS$。
输入格式
第一行一个整数$N$。
接下来$N$行每行$4$个空格隔开的整数$a_i,b_i,c_i,d_i$。
输出格式
一行一个整数表示答案。
样例
样例输入
2
666 233 666 233
666 233 666 233
样例输出
288378
数据范围与提示
前$4$个测试点满足:对于第$i$个测试点,$N=i$。
第$5$个测试点满足:所有$b_i=0$,所有$d_i=0$,所有$a_i=1$,所有$c_i=1$。
第$6$个测试点满足:所有$b_i=1$,所有$d_i=1$,所有$a_i=0$,所有$c_i=0$。
全部数据,$1\leqslant N\leqslant 15,0\leqslant a_i,b_i,c_i,d_i\leqslant 1,000,000$。
题解
本身这道题这么简单,我都不想写题解了,但是作为我$AK$的第一套题的$T1$,我还是简单说一下吧。
题很简单,爆搜没什么说的,刚学一个月都能做出来。
但是考场上$56$个人还是有$9$个人没有$A$掉,甚为可惜。
发现其中有好多人选择了状压$DP$,然后没打对,有些人看错了$a,b,c,d$的顺序,有些人没有开$long\ long$,总之无非就是两种人:
一种是把题想复杂的,这种情况一定要避免,想当年袁神$NOIPD1T1$200多行树套树直接心态炸裂,惨痛退役,在此惊醒各位一定不要做这种人,这样是最亏的,比别人努力,但是却不如别人收获的多。
另一种则是把这道题想的太简单,根本就不去检查,这种情况也要避免,举个最简单的例子,日军侵华就是低估了中国人民的实力,我在考场上认真读了三遍这道题,就是为了确保细节,说实话我都觉得自己有点偏向第一种人了。
话不多说了。
时间复杂度:$\Theta(2^n)$。
期望得分:$100$分。
实际得分:$100$分。
代码时刻
#include<bits/stdc++.h>
using namespace std;
int n;
long long a[20],b[20],c[20],d[20];
long long ans;
void dfs(int x,long long w,long long o)
{
if(x>n)
{
ans=max(ans,w*o);
return;
}
dfs(x+1,w+a[x],max(o-b[x],0LL));
dfs(x+1,max(w-d[x],0LL),o+c[x]);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%lld%lld%lld%lld",&a[i],&b[i],&c[i],&d[i]);
dfs(1,0,0);
cout<<ans<<endl;
return 0;
}
rp++
[CSP-S模拟测试]:周(week)(搜索)的更多相关文章
- [CSP-S模拟测试]:chess(搜索+最短路)
题目描述 $pig$在下象棋的时候特别喜欢用马,他总是计算着自己的马还需要几步才能吃掉对方的帅,以及方案数的个数,当然$pig$很笨,所以他只能求助于你.我们假设在$n\times m$的棋盘上,$p ...
- [CSP-S模拟测试]:联盟(搜索+树的直径)
题目描述 $G$国周边的$n$个小国家构成一个联盟以抵御$G$国入侵,为互相支援,他们建立了$n−1$条双向通路,使得任意两个国家可以经过通路相互到达.当一个国家受到攻击时,所有其它国家都会沿着最短路 ...
- [CSP-S模拟测试]:beauty(搜索)
题目描述 距离产生美.一棵包含$n$个点的树,有$2k$个不同的关键点,我们现在需要将这些点两两配对,对于一种形如:$$(u_1,v_1),(u_2,v_2),...,(u_k,v_k)$$的配对方案 ...
- 【阿里云产品公测】PTS压力测试WP站搜索
[阿里云产品公测]PTS压力测试WP站搜索 作者:阿里云用户cnsjw PTS性能测试服务是一个非常非常强大的压力测试工具.可以模拟百人同时访问网站的情况,并监测ECS和RDS的各项指标,生成非常详细 ...
- 模拟测试—moq:简单一两句
在Xunit的基础上,说话模拟测试. 假如我们有这样一个控制器里面有这样一个方法,如图 我们在对Bar测试得时候,如果测试未通过,错误有可能来至于Bar,也有可能错误来至于serverde Foo方法 ...
- [考试反思]1003csp-s模拟测试58:沉淀
稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...
- csp-s模拟测试98
csp-s模拟测试98 $T1$??不是我吹我轻松手玩20*20.$T2$装鸭好像挺可做?$T3$性质数据挺多提示很明显? $One$ $Hour$ $Later$ 这$T1$什么傻逼题真$jb$难调 ...
- csp-s模拟测试95
csp-s模拟测试95 去世场祭. $T1$:这不裸的除法分块吗. $T2$:这不裸的数据结构优化$Dp$吗. $T3$:这不裸的我什么都不会搜索骗$30$分吗. 几分钟后. 这除法分块太劲了..(你 ...
- csp-s模拟测试86
csp-s模拟测试86 分屋前的最后一次考试,我早就放弃了自己. 02:02:46 70 02:02:57 03:16:08 100 03:16:08 $T1$忘了按位计算,达哥按位计算的$T1$当时 ...
随机推荐
- 35 怎么优化join
35 怎么优化join 上一篇介绍了join的两种算法:nlj和bnl create table t1(id int primary key, a int, b int, index(a)); cre ...
- Temporal-Difference Learning for Prediction
In Monte Carlo Learning, we've got the estimation of value function: Gt is the episode return from t ...
- 网络摄像头CVE
CVE-2018-9995 rtsp未授权访问 rtsp后缀整理: Axis(安讯士) rtsp:// 192.168.200.202/axis-media/media.amp?videocodec= ...
- Java中StringHelp
import java.util.Collection; import java.util.Map; import java.util.UUID; public class StringHelper ...
- 项目被os x占用
xattr -d com.apple.FinderInfo 空格后拖入项目回车就行了
- RocketMQ安装部署及整合Springboot
消息中间件的功能: 通过学习ActiveMq,kafka,rabbitMq这些消息中间件,我们大致能为消息中间件的功能做一下以下定义:可以先从基本的需求开始思考 最基本的是要能支持消息的发送和接收,需 ...
- 极*Java速成教程 - (3)
Java语言基础 访问权限控制 Java是一个面向对象的语言,当你不是它所设计的要面向的对象时,它就不会给你看你不该看到的东西,也就是"访问权限控制". 亲疏有别,才能权限控制 包 ...
- 知乎使用selenium反爬虫的解决方案
from selenium.webdriver import Chrome from selenium.webdriver import ChromeOptions option = ChromeOp ...
- linux下docker启动nginx无法访问80端口
问题: Linux安装了docker,docker启动了一个nginx容器,通过 80 端口无法正常访问 故障排查: 1.检查 nginx 容器启动的命令或者yaml文件,查看是否有跟本机端口进行绑定 ...
- MySQL的一些指令操作
这个连接的也不错: https://www.cnblogs.com/wangyueping/p/11258028.html 如何给MySQL数据可添加一个用户 首先以root身份登录到MySQL服务器 ...