首页 > 其他分享 >ABC306 Poisonous Full-Course

ABC306 Poisonous Full-Course

时间:2023-06-17 22:23:02浏览次数:63  
标签:Full space int max Poisonous ABC306 菜品 美味 300001

Atcoder题目链接

题目大意

Takahashi 要品尝 \(N\) 个菜品.这些菜品中有些是有毒的,有些是解药.当他吃下第 \(i\) 个菜品时,他的总美味值会增加 \(Y_{i}\) ,同时有以下效果:

  • 如果吃下的菜品是有毒的( \(X_{i}=1\) ),且他现在的胃是健康的,他的胃转变为不舒服的;如果他现在的胃已经是不舒服的了,他就死了.

  • 如果吃下的菜品是解药( \(X_{i}=0\) ),且他现在的胃是健康的,什么也不会发生;如果他现在的胃是不舒服的,他的胃转变为健康的.

现在, Takahashi 面临每一个送上来的菜品,可以选择吃或者不吃.他要活着离开餐厅,并使总美味值最大.

思路

使用dp.使用 $f[i][0/1] $ 表示面临过i个菜品后,他的胃的状态对应的最大总美味值.

状态转移式如下:

  • 如果\(x_{i}=1\) , $$f[i][0]=f[i-1][0]$$ $$f[i][1]=max(f[i-1][0]+y_{i} \space,f[i-1][1])$$

  • 如果\(x_{i}=0\) , $$f[i][0]=max(f[i-1][0],f[i-1][0]+y_{i}\space ,f[i-1][1]+y_{i}\space )$$ $$f[i][1]=f[i-1][1]$$

代码

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n,x[300001],y[300001];
long long f[300001][2];
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++) cin>>x[i]>>y[i];
	if(x[1]) {f[1][0]=0;f[1][1]=y[1];}
	else {f[1][0]=max(0,y[1]);}
	for(int i=2;i<=n;i++)
	{
		if(x[i])
		{
			f[i][1]=max(f[i-1][0]+y[i],f[i-1][1]);
			f[i][0]=f[i-1][0];
		}
		else 
		{
			f[i][1]=f[i-1][1];
			f[i][0]=max(max(f[i-1][0],f[i-1][0]+y[i]),f[i-1][1]+y[i]);
		}
	}
	cout<<max(f[n][1],f[n][0])<<endl;
	return 0;
}

评测记录

标签:Full,space,int,max,Poisonous,ABC306,菜品,美味,300001
From: https://www.cnblogs.com/BushHuang/p/17488368.html

相关文章

  • mysql 报错 :The table xxx is full
    ############################################现象:用户执行的sql语句报错:Cause:java.sql.SQLException:Thetable'/home/work/mysql_3306//tmp/#sql117f0c_db7113_a4'isfull 原因:参数internal_tmp_mem_storage_engine是默认值TempTable,当临时表大小超过temptable_m......
  • 如何解决系统报错:nf_conntrack: table full, dropping packets
    问题在系统日志中(/var/log/messages),有时会看到大面积的下面的报错:nf_conntrack:tablefull,droppingpacket这说明系统接到了大量的连接请求,但是系统的连接跟踪表已经满了,无法再记录新的连接了。这时候,系统会丢弃新的连接请求。在CentOS下,默认的连接跟踪表大小是65536,可......
  • 自定义系统级无窗口全局快捷键热键-Delphi7_Lite_Full_Edition_Setup_7.3.4.3_Build_2
      自定义系统级无窗口全局快捷键热键-Delphi7_Lite_Full_Edition_Setup_7.3.4.3_Build_20110801-2023年6月9日 programProject1_SetHotkeyBaiduSyncDisk;usesForms,Unit1_SetHotkeyBaiduSyncDiskin'Unit1_SetHotkeyBaiduSyncDisk.pas'{Form1};{$R*.res}b......
  • iPhone 卡死 重启 panic full
    {"bug_type":"210","timestamp":"2023-06-0712:41:42.00+0800","os_version":"iPhoneOS16.3.1(20D67)","roots_installed":0,"incident_id":"3FAEF701-289A-4ECD-AC5E-4109037B5B......
  • 浅谈mysql索引类型(normal、unique、full textl) 的区别和使用场景
    mysql索引类型mysql索引类型normal,unique,fulltext的区别是什么?normal:表示普通索引unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为uniquefulltextl:表示全文搜索的索引。FULLTEXT用于搜索很长一篇文章的时候,效果最好。用在......
  • Full Tank 题解
    FullTank题目大意给定一张\(n\)个点,\(m\)条边的连通无向图,在每个点有一个加油站,油价为该点的点权,每条边的油耗为该边的边权。现给出若干询问,问一辆油箱容量为\(c\)的车子是否能从\(s\)开到\(e\),如果可以,求出最小所需的钱。思路分析看到这种有图有权求最小消耗的题,我......
  • 在HBase中应用MemStore-Local Allocation Buffers解决Full GC问题
      译者注:上个月写了一遍博文,介绍一种高效的Java缓存实现http://maoyidao.iteye.com/blog/1559420。其本质是模仿Memcached的Slab,通过分配连续定长的byte[]减少大规模使用JavaHeap作为缓存时不可避免的GC问题。虽然当时构思和实现这一思路时并没有参照其他开源产品,但这一思路在很......
  • Could not commit Hibernate transaction,Transaction not successfully started
    CouldnotcommitHibernatetransaction,Transactionnotsuccessfullystarted1.数据库操作和业务分离。事务内属于业务验证抛出的异常问题或其他不符合当前业务规则的异常,挪到上一层级,如接口层或业务视图层,以此避免该类问题2.evict。获取当前session,evict当前数据库对象,避......
  • webpack报错处理:The extension in the request is mandatory for it to be fully spe
    完整的报错提示如下:BREAKINGCHANGE:Therequest'./module2'failedtoresolveonlybecauseitwasresolvedasfullyspecified(probablybecausetheoriginisstrictEcmaScriptModule,e.g.amodulewithjavascriptmimetype,a'*.mjs'file,or......
  • c#中用System.Diagnostics.Process.Start(Path.GetFullPath(“vlc.exe.lnk“), url);用
    vlc.exe.lnk双击这个文件,能正常打开vlc,但是用System.Diagnostics.Process.Start(Path.GetFullPath("vlc.exe.lnk"),url);没有任何反应。根据常理,不应该出现这个问题。但是现实就是这么魔幻,偏偏有这个问题。根据上面图,根据快捷方式是可以获取到vlc可执行文件的路径的,然后在网上搜索......