BestCoder Round #91 1001 Lotus and Characters

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=6011

題意:

Lotus有nn種字母,給出每種字母的價值以及每種字母的個數限制,她想構造一個任意長度的串。 定義串的價值為:第1位字母的價值*1+第2位字母的價值*2+第3位字母的價值*3…… 求Lotus能構造出的串的最大價值。(可以構造空串,因此答案肯定\geq 00)

分析:

做這個題目的時候,第一感覺回溯算了,不用想,肯定T了。

 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 int n;
 6 int val[30];
 7 int cnt[30];
 8 int len;
 9 
10 int dfs(int cur)
11 {
12     int ans = 0;
13     if(cur>=len+1) return 0;
14     else
15     {
16         for(int i=0; i<n; i++)
17         {
18             if(cnt[i]>0)
19             {
20                 cnt[i]--;
21                 ans = max(ans,(cur+1)*val[i]+dfs(cur+1));
22                 cnt[i]++;
23             }
24         }
25     }
26     return ans;
27 }
28 
29 int main()
30 {
31     int t;
32     scanf("%d",&t);
33 
34     while(t--)
35     {
36         scanf("%d",&n);
37         len = 0;
38         for(int i=0; i<n; i++)
39         {
40             scanf("%d%d",&val[i],&cnt[i]);
41             len+=cnt[i];
42         }
43 
44         printf("%d\n",dfs(0));
45     }
46     return 0;
47 }

?

后來想DP,直覺告訴我,正權值的放后面。每次計算后面的數值,又不知道前面有多少位,怎么解決這個問題呢?

就類似于前綴和,寫一個后綴和,之前的位數不確定,怎么解決呢?

Ans[i] = Ans[i+1] + sum[i+1] +v[i];

狀態轉移就是多加了一遍后綴和,和首位。最后找一下最好的切割點。

其實這個切割點也可以從后往前找。

 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int t;
 8     scanf("%d",&t);
 9     while(t--) {
10         int n;
11         scanf("%d",&n);
12 
13         vector<int> v;
14 
15         for(int i=0;i<n;i++) {
16             int val,cnt;
17             scanf("%d%d",&val,&cnt);
18             for(int i=0;i<cnt;i++) {
19                 v.push_back(val);
20             }
21         }
22 
23         sort(v.begin(),v.end());
24 
25         int len = v.size();
26 
27         int Ans[10010];
28         int sum[10010];
29 
30         memset(Ans,0,sizeof(Ans));
31         memset(sum,0,sizeof(sum));
32 
33         for(int i=len-1;i>=0;i--) {
34             sum[i] = sum[i+1] + v[i];
35         }
36 
37         for(int i=len-1;i>=0;i--) {
38             Ans[i] = Ans[i+1] + sum[i+1] + v[i];
39         }
40 
41         int ans = 0;
42 
43         //for(int i=0;i<len;i++) {
44         //    ans = max(ans,Ans[i]);
45         //}
46 
47 
48         for(int i=len-1;i>=0;i--) {
49             if(ans<Ans[i])
50                 ans = Ans[i];
51             else break;
52         }
53 
54         printf("%d\n",ans);
55     }
56 
57     return 0;
58 }

?

轉載于:https://www.cnblogs.com/TreeDream/p/6339982.html

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

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

相關文章

Calendar的那些神坑

參考我的博客&#xff1a;http://www.isedwardtang.com/2017/08/31/java-calendar-bug/轉載于:https://www.cnblogs.com/EdwardTang/p/7476781.html

mkyaffs2image的用法

在Ubuntu中第一次使用mkyaffs2image命令時&#xff0c;會提示 mkyaffs2image&#xff1a;找不到命令 還需要安裝mkyaffs2image http://code.google.com/p/fatplus/downloads/detail?nameyaffs2-source.tar&can2&q 下載yaffs2-source.tar 解壓后&#xff0c;進入util…

全景圖像拼接——基本流程

圖像拼接技術是數字圖像處理技術一個重要的研究方向,它即是將兩幅或多幅相互有部分重疊的場景照片拼接成具有超寬視角、與原始圖像接近且失真小、沒有明顯縫合線的高分辨率圖像。可以很好地解決廣角鏡、魚眼鏡頭等全景圖獲取設備的不足。如下圖: 圖像拼接產生的圖像不…

SmartRaiden 和 Lighting Network 進行去中心化跨鏈原子資產交換

SmartRaiden 和 Lighting Network 進行去中心化跨鏈原子資產交換 前言 如果能夠進行以太坊和比特幣跨鏈原子資產交換&#xff0c;是不是一件很酷的事情&#xff1f; 目前鏈下的擴容方式有很多&#xff0c;最廣為人知的就是比特幣的閃電網絡和以太坊的雷電網絡&#xff0c;今天我…

WPF 帶CheckBox、圖標的TreeView

WPF 帶CheckBox、圖標的TreeView 在WPF實際項目開發的時候&#xff0c;經常會用到帶CheckBox的TreeView&#xff0c;雖然微軟在WPF的TreeView中沒有提供該功能&#xff0c;但是微軟在WPF中提供強大的ItemTemplate模板功能和自定義樣式&#xff0c;那我們可以自己寫一個這樣的控…

win32框架,GDI圖形編程寫一個HelloWorld游戲_c語言

1.如圖&#xff0c;實現功能: Hello World!字符串跟隨鼠標移動鼠標左擊Hello World!顏色為紅色鼠標右擊Hello World!顏色為藍色鼠標滾輪滾動改變Hello World!顏色的RGB中的G值 2.實現工具: vs20133.實現步驟: 新建一個win32項目 如圖,看到HelloWorldGame.cpp中 _tWinMain()的函…

全景圖像拼接——圖像融合

圖像融合技術就是將配準過后的圖像融合成一幅寬視角、大場景的圖像。但由于圖像采集過程中各種因素的影響,例如光照、角度、距離等,從而導致圖像間的光照不均勻、顏色上不連續。 經過配準以后,參考圖像和輸入圖像已經在同一個坐標系下,如果只是取某一幅圖像的信息或者簡單地…

極詳細的ECC講解 -OOB與ECC

http://blog.csdn.net/dongzhichen/article/details/8249228 詳細的ECC講解 -OOB與ECC 在網絡編程中 OOB&#xff08;out of band&#xff09;帶外數據 在MTD設備中 OOB 如下所示&#xff1a; http://www.cnblogs.com/bcxx_qin/archive/2009/06/11/1501271.html 極詳細的ECC…

前端進階(8) - 前端開發需要了解的工具集合:webpack, eslint, prettier, ...

前端開發需要了解的工具集合&#xff1a;webpack, eslint, prettier, ... 前端開發需要了解的一些工具&#xff0c;這些工具能夠幫助你在項目開發中事半功倍。 1. nrm: npm registry 管理器 registry: npm 遠程倉庫的地址。 由于眾所周知的原因&#xff0c;npm 官方倉庫在國內特…

CMOS圖像傳感器——TOF 圖像傳感器

一、3D成像技術概述 圖像傳感器一直以來都是人類研究的熱點。但隨著當代科學技術發展, 人類對于傳統的 2D 圖像傳感器的要求越來高,不僅期望著更高分辨率,更快速度,更大的動態范圍,人類加希望能夠獲得物體深信息,但是 2D 成 像技術現在已經不能滿足人類的需求,所以應運…

AndroidStudio創建jinLibs文件夾

在文件中的buildTypes節點下添加 sourceSets.main { jniLibs.srcDir libs } 如圖 轉載于:https://www.cnblogs.com/kim-liu/p/7479360.html

內嵌Tomcat的Connector對象的靜態代碼塊

在排查問題的過程中發現Connector對象有一個靜態代碼塊&#xff1a; static {replacements.put("acceptCount", "backlog");replacements.put("connectionLinger", "soLinger");replacements.put("connectionTimeout", &quo…

????YAFFS2文件系統在嵌入式LINUX系統中的應用

YAFFS2文件系統在嵌入式LINUX系統中的應用 2011-03-31 19:59 181人閱讀 評論(0) 收藏 舉報 1&#xff0e;文件系統簡述 隨著32位CPU價格不斷下跌&#xff0c;片上存儲設備的容量相比越來越大&#xff0c;越來越多的嵌入式系統開始應用各種嵌入式操作系統。一般在嵌入式領域&am…

【Python爬蟲學習筆記1】網絡協議及請求基礎

http協議與https協議 HTTP協議(全稱為HyperText Transfer Protocol&#xff0c;超文本傳輸協議)&#xff0c;是發布和接收HTML頁面的方法&#xff0c;其服務端口號為80。 HTTPS協議為HTTP協議的加密版本&#xff0c;其在HTTP下加入了SSL層&#xff0c;服務端口號為443。 URL結構…

快速上手SpyGlass——基本流程

SpyGlass&#xff0c;這是一個很強大的RTL驗證級工具。它不僅僅能檢查sdc的錯誤&#xff0c;還能做以下各種檢查&#xff1a;Low Power, DFT&#xff0c;CDC&#xff08;Cross Domain Check&#xff09;。 一、基本概念 1、方法學相關 Rule: 是SpyGlass 進行RTL分析的最小單…

NAND FLASH ECC

NAND需要ECC以確保數據完整性。NAND閃存的每一個頁面上都包括額外的存儲空間&#xff0c;它就是64個字節的空閑區(每512字節的扇區有16字節)。該區能存儲ECC代碼及其它像磨損評級或邏輯到物理塊映射之類的信息。ECC能在硬件或軟件中執行&#xff0c;但是&#xff0c;硬件執行有…

快速上手SpyGlass——CDC檢查

隨著技術的發展&#xff0c;數字電路的集成度越來越高&#xff0c;設計也越來越復雜。很少有系統會只工作在同一個時鐘頻率。一個系統中往往會存在多個時鐘&#xff0c;這些時鐘之間有可能是同步的&#xff0c;也有可能是異步的。如果一個系統中&#xff0c;異步時鐘之間存在信…

laravel session redis 設置

Laravel 在使用 Redis 作為 Session 驅動之前&#xff0c; 需要通過 Composer 安裝 predis/predis 擴展包 (~1.0)。 當然也可以用原生自帶的&#xff0c;具體使用見 https://laravel-china.org/docs/laravel/5.6/redis/1402#phpredis 操作即可。 然后在database 配置文件中配置…

數字后端——低功耗單元庫

在之前的文章中&#xff0c;介紹了低功耗設計物理實施的方案&#xff1a; 數字后端——低功耗設計物理實施_滄海一升的博客-CSDN博客_低功耗設計低功耗設計方案所涉及到的物理實施相關內容https://blog.csdn.net/qq_21842097/article/details/119918312 為了實現例如門…

【CUDA開發】CUDA面內存拷貝用法總結

【CUDA開發】CUDA面內存拷貝用法總結 標簽&#xff08;空格分隔&#xff09;&#xff1a; 【CUDA開發】 主要是在調試CUDA硬解碼并用D3D9或者D3D11顯示的時候遇到了一些代碼&#xff0c;如下所示&#xff1a; CUdeviceptr g_pRgba 0; CUDA_MEMCPY2D memcpy2D { 0 }; memcp…