【洛谷P1833】櫻花

先說80分代碼:最基本的混合背包,判斷是完全,01,或是多重,再選擇。

狀態轉移方程:f[j]=max(f[j],f[j-co[i]]+v[i]);

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int a[10001],c[10001],t[10001],f[10010],n,m;
 4 int main()
 5 {
 6     int x1,y1,x2,y2;
 7     scanf("%d:%d %d:%d",&x1,&y1,&x2,&y2);
 8     if(y1>y2)
 9     {
10         y2+=60;
11         x2--;
12     }
13     m=(x2-x1)*60+y2-y1;
14     scanf("%d",&n);
15     for(int i=1;i<=n;i++)
16         scanf("%d%d%d",&a[i],&c[i],&t[i]);
17     for(int i=1;i<=n;i++)
18     {
19         if(t[i]==0)
20         {
21             for(int j=a[i];j<=m;j++)
22                 f[j]=max(f[j],f[j-a[i]]+c[i]);
23         }
24         else
25         {
26             for(int k=1;k<=t[i];k++)
27             {
28                 for(int j=m;j>=a[i];j--)
29                 {
30                     f[j]=max(f[j],f[j-a[i]]+c[i]);
31                 }
32             }
33         }
34     }
35     printf("%d\n",f[m]);
36 }

再說100分代碼:把每個物品進行二進制拆分,分成1,2,4,8,16,32,64 ,,,再把花費和價值乘以次數即可。

例如:某個物品可以用20次,那么可以分成1 2 4 8 5;

PS:對于完全背包,可以把次數定為一個很大的數,如9999999;

具體見代碼:

?

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int a[10001],b[10001],c[10001],f[1000010],n,m;
 4 int x1,yy,x2,y2;
 5 int co[1000001],v[1000001],top;
 6 void aaa()
 7 {
 8     for(int i=1;i<=n;i++)
 9     {
10         int aa=1;
11         while(c[i]!=0)
12         {
13             co[++top]=a[i]*aa;
14             v[top]=b[i]*aa;
15             c[i]-=aa;
16             aa*=2;
17             if(c[i]<aa)
18             {
19                 co[++top]=a[i]*c[i];
20                 v[top]=b[i]*c[i];
21                 break;
22             }
23         }
24     }
25 }
26 int main()
27 {
28     scanf("%d:%d %d:%d",&x1,&yy,&x2,&y2);
29     if(yy>y2)
30     {
31         y2+=60;
32         x2--;
33     }
34     m=(x2-x1)*60+y2-yy;
35     scanf("%d",&n);
36     for(int i=1;i<=n;i++)
37     {
38         scanf("%d%d%d",&a[i],&b[i],&c[i]);
39         if(!c[i]) c[i]=9999999;
40     }
41     aaa();
42     for(int i=1;i<=top;i++)
43         for(int j=m;j>=co[i];j--)
44             f[j]=max(f[j],f[j-co[i]]+v[i]);
45     printf("%d\n",f[m]);
46 }

希望能給大家帶來幫助!

轉載于:https://www.cnblogs.com/shl-blog/p/10500804.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394836.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394836.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394836.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TCC分布式事務

https://github.com/changmingxie/tcc-transaction轉載于:https://www.cnblogs.com/520playboy/p/7235716.html

迭代器2

小結 凡是可作用于for循環的對象都是Iterable類型&#xff1b; 凡是可作用于next()函數的對象都是Iterator類型&#xff0c;它們表示一個惰性計算的序列&#xff1b; 集合數據類型如list、dict、str等是Iterable但不是Iterator&#xff0c;不過可以通過iter()函數獲得一個Itera…

長尾關鍵詞seo_為什么您不應該忘記長尾SEO

長尾關鍵詞seoby Ben Rudolph通過本魯道夫 為什么您不應該忘記長尾SEO (Why you shouldn’t forget about long tail SEO) A few months ago, I wrote about how I built ThingsOnReddit. It’s a site that finds the best Amazon products posted to Reddit and uses Amazon…

python調用hive與java調用區別_使用Pyhive調用

我正在使用pyhive與hive交互。在 使用下面的代碼&#xff0c;SELECT語句運行良好。在# Import hive module and connect from pyhive import hive conn hive.Connection(host"HOST") cur conn.cursor() # Import pandas import pandas as pd # Store select query …

linux gnome啟動命令,如何在Gnome Shell上自動啟動程序

登錄Gnome Shell時自動打開應用程序是提前設置工作區的好方法。在Gnome Shell上自動啟動程序的最簡單方法是使用Tweaks應用程序。在本指南中&#xff0c;我們將介紹如何安裝Gnome Tweaks應用程序以輕松配置自動程序啟動。讓我們開始吧&#xff01;通過GUI自動啟動程序默認情況下…

netstat查看linux運行的端口,查看哪些端口被打開 netstat -anp

一、查看哪些端口被打開 netstat -tnl二、關閉端口號:iptables -A OUTPUT -p tcp --dport 端口號-j DROP三、打開端口號&#xff1a;iptables -A INPUT -ptcp --dport 端口號-j ACCEPT四、保存設置service iptables save五、以下是linux打開端口命令的使用方法。nc -lp 23 &…

用戶體驗崗如何說服其他部門_為什么我們應該說服用戶更新他們的瀏覽器-這是雙贏的。...

用戶體驗崗如何說服其他部門by Alex Ewerlf由AlexEwerlf 為什么我們應該說服用戶更新他們的瀏覽器-這是雙贏的。 (Why we should convince our users to update their browsers — it’s a win-win.) Unless you’ve been living under a rock recently, you’re aware of Mel…

【JAVA并發編程實戰】3、同步容器

同步容器包括Vector和Hashtable&#xff0c;還有一些由Collections.synchronizedXxx等工廠方法創建的 1、同步容器類的問題 同步容器類都是線程安全的&#xff0c;但是有些時候還是要客戶端加鎖來保護復合操作 就比如vector的操作&#xff0c;如果又兩個方法一個獲取vector集合…

php 動態加載html內容_ThinkPHP5.1+Swoole實現的開源內容管理框架

一款支持Swoole的開源內容管理框架&#xff0c;基于ThinkPHP5.1開發&#xff0c;同時支持PHP-FPM和Swoole雙模式&#xff0c;讓WEB開發更快!主要特性更改框架協議為MIT,讓你更自由地飛基于ThinkPHP 5.1重構&#xff0c;但核心代碼兼容5.0版本&#xff0c;保證老用戶最小升級成本…

MarkDown語言

參考&#xff1a; 參考&#xff1a;https://typora.io/參考&#xff1a;https://caret.io/Markdown是一種輕量級標記語言&#xff0c;創始人為約翰格魯伯&#xff08;英語&#xff1a;John Gruber&#xff09;。 它允許人們“使用易讀易寫的純文本格式編寫文檔&#xff0c;然后…

${fn:} 函數

調用這樣一個頭文件<% taglib prefix"fn" uri"http://java.sun.com/jsp/jstl/functions " %> 下面就可以直接調用以下的函數。 函數名 函數說明 使用舉例 fn:contains 判斷字符串是否包含另外一個字符串 <c:if test"${fn:contains(name, s…

linux7.2配置多路徑軟件,RHEL6使用系統自帶多路徑軟件配置多路徑,rhel6路徑

RHEL6使用系統自帶多路徑軟件配置多路徑&#xff0c;rhel6路徑1、多路徑的主要功能多路徑一般配合存儲設備實現如下功能&#xff1a;故障的切換和恢復IO流量的負載均衡磁盤的虛擬化2、查看系統自帶的多路徑軟件是否安裝[rootcluster01 ~]# rpm -qa |grep device-mapperdevice-m…

小甲魚python課后答案40講_小甲魚Python 第30講課后習題看不懂

本帖最后由 keydnal_aaron 于 2018-1-18 14:17 編輯 這個測試的文本里面是英文字符串&#xff0c;如果環境不同&#xff0c;注意下文本內容的編碼方式&#xff0c;我的編程環境是centos7python3.6.4 from os import walk,getcwd from os.path import join def search_file():查…

SM4密碼算法(附源碼)

SM4是我們自己國家的一個分組密碼算法&#xff0c;是國家密碼管理局于2012年發布的。網址戳→_→&#xff1a;http://www.cnnic.NET.cn/jscx/mixbz/sm4/具體的密碼標準和算法官方有非常詳盡的PDF文檔以供查閱&#xff0c;戳→_→&#xff1a;http://218.241.108.63/wiki/images…

vim ctrlp_使用Ctrlp和Ctag使Vim更智能

vim ctrlpby _haochuan通過_haochuan 使用Ctrlp和Ctag使Vim更智能 (Make Your Vim Smarter Using Ctrlp and Ctags) I absolutely love Vim, and I use Vim for all my coding and writing from year to year. Although more are more people, especially for those are worki…

linux系統可以無顯卡運行嗎,Linux操作系統無顯卡安裝方式

顯卡安裝方法&#xff1a;操作步驟&#xff1a;1、SBC上裝上顯卡&#xff0c;并啟動安裝程序2、安裝linux系統并選擇相應的安裝包(選擇lilo啟動加載程序)如果安裝時以GRUB方式加載的&#xff0c;需要在Grub.conf中將有關圖形的語句屏蔽掉。#splashimage(hd0,0)/grub/splash.xpm…

軟件工程專業實習可以做什么_想要獲得軟件工程實習機會? 這里有一些想法可以幫助您...

軟件工程專業實習可以做什么by Tatiana Doyle塔蒂亞娜道爾(Tatiana Doyle) 想要獲得軟件工程實習機會&#xff1f; 這里有一些想法可以幫助您。 (Looking to land a software engineering internship? Here are some thoughts to help you.) A note: this post is simply mea…

ubuntu 簡單配置samba

關鍵字: ubuntu samba今天在家&#xff0c;閑著沒事&#xff0c;就想學習一下samba 來實現windows xp 訪問ubuntu 的文件夾&#xff08;家里有兩臺pc&#xff09;&#xff0c;google了很多文章&#xff0c;但是很多都沒有用&#xff0c;不過鳥哥的文章有很清楚的介紹&#xff0…

python3.8文檔_python 3.8的新功能

演示和工具 添加了一個基準腳本&#xff0c;用于計時訪問變量的各種方式&#xff1a; Tools/scripts/var_access_benchmark.py . &#xff08;由Raymond Hettinger在 bpo-35884 &#xff09; 以下是自Python3.3以來性能改進的摘要&#xff1a; Python version 3.3 3.4 3.5 3.6 …

mysql數據庫備份及還原

一、Mysql數據庫備份指令格式&#xff1a; mysqldump -h主機名 -P端口 -u用戶名 -p密碼 (–database) 數據庫名 > 文件名.sql 注&#xff1a;直接cmd執行該指令即可&#xff0c;不需要先mysql -u root -p鏈接數據庫 1、備份MySQL數據庫的命令mysqldump -hhostname -uuserna…