题目描述

退役之后,$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)(搜索)的更多相关文章

  1. [CSP-S模拟测试]:chess(搜索+最短路)

    题目描述 $pig$在下象棋的时候特别喜欢用马,他总是计算着自己的马还需要几步才能吃掉对方的帅,以及方案数的个数,当然$pig$很笨,所以他只能求助于你.我们假设在$n\times m$的棋盘上,$p ...

  2. [CSP-S模拟测试]:联盟(搜索+树的直径)

    题目描述 $G$国周边的$n$个小国家构成一个联盟以抵御$G$国入侵,为互相支援,他们建立了$n−1$条双向通路,使得任意两个国家可以经过通路相互到达.当一个国家受到攻击时,所有其它国家都会沿着最短路 ...

  3. [CSP-S模拟测试]:beauty(搜索)

    题目描述 距离产生美.一棵包含$n$个点的树,有$2k$个不同的关键点,我们现在需要将这些点两两配对,对于一种形如:$$(u_1,v_1),(u_2,v_2),...,(u_k,v_k)$$的配对方案 ...

  4. 【阿里云产品公测】PTS压力测试WP站搜索

    [阿里云产品公测]PTS压力测试WP站搜索 作者:阿里云用户cnsjw PTS性能测试服务是一个非常非常强大的压力测试工具.可以模拟百人同时访问网站的情况,并监测ECS和RDS的各项指标,生成非常详细 ...

  5. 模拟测试—moq:简单一两句

    在Xunit的基础上,说话模拟测试. 假如我们有这样一个控制器里面有这样一个方法,如图 我们在对Bar测试得时候,如果测试未通过,错误有可能来至于Bar,也有可能错误来至于serverde Foo方法 ...

  6. [考试反思]1003csp-s模拟测试58:沉淀

    稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...

  7. csp-s模拟测试98

    csp-s模拟测试98 $T1$??不是我吹我轻松手玩20*20.$T2$装鸭好像挺可做?$T3$性质数据挺多提示很明显? $One$ $Hour$ $Later$ 这$T1$什么傻逼题真$jb$难调 ...

  8. csp-s模拟测试95

    csp-s模拟测试95 去世场祭. $T1$:这不裸的除法分块吗. $T2$:这不裸的数据结构优化$Dp$吗. $T3$:这不裸的我什么都不会搜索骗$30$分吗. 几分钟后. 这除法分块太劲了..(你 ...

  9. csp-s模拟测试86

    csp-s模拟测试86 分屋前的最后一次考试,我早就放弃了自己. 02:02:46 70 02:02:57 03:16:08 100 03:16:08 $T1$忘了按位计算,达哥按位计算的$T1$当时 ...

随机推荐

  1. Foxit_PDF_Editor(特别版)-PDF文档编辑器 V2.21 V3.1

    完全反编辑PDF,需要下载. 链接:https://pan.baidu.com/s/1QLIr_2O-WDncVm9veW8JSw 提取码:zf2a

  2. Java基础/阿里巴巴Java开发手册

    阿里巴巴Java开发手册 序号 文档名及下载地址 1 阿里巴巴Java开发手册v1.2.0 2 <阿里巴巴Java开发手册>(终极版) 为什么阿里巴巴禁止工程师直接使用日志系统(Log4j ...

  3. 生日蛋糕 (poj1190) (dfs剪枝)

    [题目描述] 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri, 高度为 ...

  4. Python学习第四十天函数的装饰器用法

    在软件开发的过程中,要遵循软件的一些原则封装的,不改变原有的代码的基础增加一些需求,python提供了装饰器来扩展函数功能,下面说说函数装饰器用法 def debug(func):      def ...

  5. Thinkphp 获取最大值id值

    有时候项目需要获取数据库最大的id值,比如生成订单,做排序号,那么Thinkphp 如何获取最大值id值. $info=D('Customer')->where('1=1')->order ...

  6. SQLServer查看及设置最大连接数

    很多时候自己本地开发会遇到 ,打开几个连接正常访问 之后就报错误,这时候需要调整sqlserver 最大连接数. 1. 查询最大连接数 SELECT value_in_useFROM sys.conf ...

  7. neo4j 基本语法笔记(全)

    按照总监要求看了两天的neo4j 数据库的使用.在网上找了一个基础教程类似于w3c.school的网站(英文 ,中文,中文的翻译的不是很好,如果英文不好可以辅助理解),这个教程基础知识很全全面,从数据 ...

  8. 20191126PHP连接数据(1)

    引进数据 mysql> create database stu1 character set utf8; mysql> use stu1 mysql> set names utf8; ...

  9. Uedit32_17.00 修改某一语言背景色-修改后续名后语法着色及某语言的大括号{}对齐

    修改UE的背景色:高级-配置-编辑器显示-其它-设置颜色 新增扩展名语法着色:如以tpl为后缀的html代码格式着色高级-配置-编辑器显示-语法着色-语言选言[选中要着色的语言html]-打开-在'F ...

  10. linux NFS 的安装准备

    关闭 iptables 和 selinux [root@allentuns ~]# service iptables stop [root@allentuns ~]# chkconfig iptabl ...