题意:给出一些人买票的时间,能够一个人买。也能够相邻两人一起买,求全部人买完票的最短时间。 思路:一维DP,dp[i]表示第i个人买票所须要的时间。这个人能够和前一个人一起买,也能够自己买。 状态转移方程:dp[i]=min(dp[i-1]+t1[i],dp[i-2]+t2[i-1]),然后再注意初            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-08-15 13:07:00
                            
                                63阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            地址:http://acm.hdu.edu.cn/showproblem.php?pid=1260题意:有个人卖票。从8:00:00am开始卖。后面有n个人,每个人卖票需要ki的时间,但是相邻两个人可以合起来买,需要di的时间。问卖票人最早回家的时间。mark:一个水dp加一个时间的转换。本来可以1A的但是3wa。第一次错是因为小时数忘记处理成不大于12的数字,第二次错是因为把m%=60写成了h%=60,第三次是忘记删除调试语句。都是脑残错误。。。代码: 1 # include 2 3 4 int s[2010], d[2010], dp[2010] ; 5 6 7 int min(...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2013-09-04 01:38:00
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            考察:线性dp思路:        很容易看出状态转移方程,坑到本蒟蒻的是计算时间,总之请记下来....        这里的f[n]是秒数. 1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 const int N = 2010; 5 int one[N],two[N],n,f[N];             
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-03-14 17:40:42
                            
                                97阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            Tickets HDU - 1260有一部很好看的电影,许多人冲进电影院看,但是这对买票人来说简直很浪费时间个人需要购票的时间。 输出:工作...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-08-22 21:18:58
                            
                                41阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            题意:给出几类珍珠,以及它们的单价,要求用最少的钱就可以买到相同数量的,相同(或更高)质量的珍珠。规定买任一类的珍珠n个(价格为p),都要支付(n+10)*p的钱,即额外支付10*p。(1) 要求要买的珍珠的数量是一定的(2) 所买的珍珠的质量允许提高,但不允许下降(即可以用高质量珍珠替代低质量)(3) 输入时,后输入的珍珠价格一定比前面输入的要贵(4) 由(2)(3)知,珍珠的替代必须是连续的,不能跳跃替代。因为,假如方案是用第 i+2 类去替代第 i 类珍珠,而用第 i+1 类去替代第 i 类珍珠会使最终的支付价格更加低;所以,一定是因为第 i+2 类代替了第 i+1 类后会使最终的支付价            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2013-07-05 08:55:00
                            
                                90阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            题意: 买票 一个人要么自己买 要么和前面的人一起买 这两种情况分别有一个买票所花费的时间 求总的花费时间最小 解析: dp[i] 表示前i个人买票总的花费时间 v[i]表示第i个人买票花费的时间 w[i]表示第i个人与前一个人买票花费的时间 则 dp[i] = min(dp[i-1]+v[i],            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2018-05-21 20:10:00
                            
                                61阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
             
   
 
  
   
   
     
   
 
  
   
   
     
   
 
  
   
   
     
   
 
  
   
   
     
   
 
  
   
   
     
   
 
  
   
   
     
   
 
  
   
   
     
   
             
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-06-08 12:02:45
                            
                                61阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            题意:给出几类珍珠,以及它们的单价,要求用最少的钱就可以买            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2013-07-05 22:00:00
                            
                                42阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            dpView Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;#define maxn 106struct Pearl{ int num, p;}pearl[maxn];int n, f[maxn];void input(){ scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d%d", &am            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2011-07-02 13:20:00
                            
                                57阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            贪心 从上级比赛向下级比赛枚举 用一个堆维护一下可以作为对手人选的价值 每次取最小即可 如果当前比赛不用花钱就能打赢就跳过 没做出来的原因在于还想维护每个对手的手下败将 其实根本不用维护 因为剩下的人总能合理分配 只要比这个人弱的人数量足够就行 因为只要弱就行 #include <bits/stdc            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-01-27 23:14:00
                            
                                71阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            #include <iostream> //DP#include <numeric>using namespace std;#define ed 105int ai[ed],pi[ed],dp[ed]; int main(){ int t,c; cin>>t; while(t--) { cin>>c; for(int i=1;i<=c;++i) cin>>ai[i]>>pi[i]; fill(dp,dp+ed,100000000); //初始化为极大值 dp[0]=0; for(int i=1;i<=c;++i            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2011-07-22 19:04:00
                            
                                54阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            http://poj.org/problem?id=1260 题意:给出几类珍珠,以及它们要买的数量和单价,珍珠的质量依次上升,价格也依次上升,计算买所有珍珠需要花的最少价格。 购买规则是这样的,不管买哪一类的珍珠,最后都需要增加10个该类珍珠,并且质量低的珍珠可以用质量高的珍珠来代替。 举个例子吧            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-02-01 15:29:00
                            
                                36阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            DP is, enumeration + pruning. If you can think of enumeratio            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2014-07-01 14:02:00
                            
                                181阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            题目大意:有n个样例,每个样例中有m个人去买票,如果每个人买一张,时间分别为a1,a2,a3...an秒,如果是二个人一起买票,则从第二个人起与前一个人一起买票,时间为b1,b2 ... bn-1秒。问,n个人买票最少需要多久。解题思路:dp公式,dp[i] = min(dp[i-1]+a[i], dp[i-1]+b[i])。dp[0]为一个人,是a1,dp[1]是两个人时,是min(a[0]+a            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-12-01 15:33:12
                            
                                75阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            题目地址:点击打开链接思路:刚开始就想错了,能看出来是动态规划,但是就是想不出具有最优子结构的递推式,我想到的是每个人既可以与前面的一个人一起买,又可以和后面的一个人一起买,不具有无后向性的要求,看了别人的代码就醒悟了,汗,解释看代码,dp[i]表示的是前i个人买票所需要的时间,还有就是测试数据不会超过24小时,不用再对小时%24,午夜12点是am,中午12点是pmAC代码:#incl            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-08-04 09:11:32
                            
                                18阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            题意:有一些珍珠,给你珍珠的数量价格,你需要买下所有的珍珠,购买的方法买一种珍珠,设珍珠数量n 、价格 p,则须支付(            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-12-30 08:07:42
                            
                                57阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            题 题意 有n个(n≤100)等级的珍珠,等级越高单价越高,要购买一种等级的珍珠就要多付10*单价,现在需要购买一些等级的珍珠一定数量,若买更高等级的珍珠更便宜则可以买更高等级的珍珠,求最少花费。 分析 我原来想贪心(如果该等级买,不如后一等级多买那么多更优,那就不买该等级),然而是错的,怎么证明不            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-22 14:03:12
                            
                                40阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            
 1 class Solution:
 2     def shiftGrid(self, grid: List[List[int]], k: int) -> List[List[int]]:
 3         n = len(grid)#n行
 4         m = len(grid[0])#m列
 5         flat = [0] * (n * m)
 6                  
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-11-17 12:10:00
                            
                                45阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            区间dp。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2016-11-01 22:54:00
                            
                                49阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            很容易脑补出来的区间dp O(n3)的
var f:array[0..51,0..51] of longint;    i,n,j,l,k:longint;    s:string;
function min(a,b:longint):longint;  begin    if a>b then exit(b) else exit(a);  end;
begin  readln(s);  n            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2014-10-26 16:31:00
                            
                                64阅读
                            
                                                                                    
                                2评论