首页 > 其他分享 >Gangsters UVA - 672

Gangsters UVA - 672

时间:2023-04-28 19:11:47浏览次数:40  
标签:int memset 672 120 Gangsters tm UVA sizeof tes

 一家饭店,有一扇大小会变得门,变化范围为[0,k]。每过一单位时间你可以让门的大小+1,-1,或者不变。
客人会在不同的时间来吃饭,但是如果门的大小和他们希望的值不一样,他们就不会进来并且直接消失。

吃饭要花钱,现在问饭店最多能赚多少钱。

 

 F[i ] [j ] =max( F[i-1][j] +v,F[i-1][j-1] +v,F[i-1][j+1] +v)

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
const int  N =3e4+10;
int f[N][120],tm[120],h[120],a[120],n,m,T,b[N][120] ;

 void sov(){
 	int i,j;
 	cin>>n>>m>>T;
 	memset(f,0,sizeof f); 
 	memset(b,0,sizeof b) ;
 	for(int i=1;i<=n;i++) cin>>tm[i];
 	for(int i=1;i<=n;i++) cin>>a[i];
 	for(int i=1;i<=n;i++) cin>>h[i],b[tm[i]][h[i]]+=a[i] ;
 	
 	for(i =1; i <=T; i ++) 
    	for(j = 0; j <= min(i,m); j ++) {
    		int v = b[i][j] ;
 			f[i][j]=max(max(f[i-1][j-1],f[i-1][j]),f[i-1][j+1])+v;
 		}
 	int ans=0;
 	for(int j=0;j<=m;j++) ans=max(ans,f[T][j]) ;
 	cout << ans<<endl;
 }
int main() {
	int tes;cin>>tes;
	while(tes--){
		
		memset(f,0,sizeof f) ; 
		sov() ;
		if(tes) cout<<endl;
	}
}

 

标签:int,memset,672,120,Gangsters,tm,UVA,sizeof,tes
From: https://www.cnblogs.com/towboa/p/17362971.html

相关文章

  • Marbles UVA - 10090
    给定两种购买物品的方案:花费c1元购买n1个物品,或者花费c2c2​元购买n2n2​个物品。方案可以无限使用,询问购买n个物品至少要多少元,若无法恰好购买到n个物品输出failed     #include<iostream>#include<algorithm>#include<cstring>#include<cmath>......
  • Hyper-drive UVA - 10542
    题意:给定一些个d维的方块,给定两点,求穿过多少方块 转化为(0,0)到(a,b)先考虑二维的 然后容斥原理#include<iostream>#include<algorithm>#include<cstring>#include<cmath>usingnamespacestd;constintN=103;#defineintlonglonginta[N],b[N],n;int......
  • Period UVA - 1371
     题意:给两个串A,B。现在把B串分为若干个部分,对每一个部分进行操作将其变为一个A串,代价为每部分操作次数的最大值求最小代价 #include<iostream>#include<algorithm>#include<cstring>usingnamespacestd;constintN=5003,M=N;#defineintlonglongconstinti......
  • Moving to Nuremberg UVA12223
    题目大意:给出n,一个无根的树,每条边上都有权值。现在每个位置都有一个景点,一个人想在一年之内去cnt[i]次景点,所以接下来给出m,表示说在m个位置上有这个人想去的地方,给出位置以及想去的次数(注意,每去一个景点都要返回自己的住处),namo这个人该住在哪里走的路程才最短。换根dp#incl......
  • Fast Food UVA - 662
    政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往。已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0<i<m。为了提高山区的文化素质,政府又决定从m个村中选择n个村建小学(设0<n≤m<500)。请根据给定的m、n以及所有......
  • Movie collection UVA - 1513
    有n个影碟,标号为1~n,位置为0~n-1,每次取出一个影碟看完后,将其放在最前面(标号为0处),问每个影碟取出前,其位置之前有多少个影碟 开2倍数组,"i放置前面"这个操作add(i,-1),add(newi,1)  #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingn......
  • Prime k-tuple UVA - 1404
        一个步骤: 在[a,b]中标记S的倍数 #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingnamespacestd;constintN=1e5+20;constintQ=2e9+2;#defineintlonglongboolvis[Q];intb[N],pm[N],tot=0;......
  • The Bells are Ringing UVA-12119
    已知M为T1,T2,T3的LCM输出满足Ti-Tj<=25的所有可能情况#include<iostream>#include<cmath>#include<algorithm>#include<cstring>usingnamespacestd;constintN=1E6+3;#defineintlonglongintpm[N],tot;intb[N],fac[N],F[N],len,cnt[N]......
  • UVA11014
     给定一个NxNxN的正方体,求出最多能选几个整数点。使得随意两点PQ不会使PQO共线。  F(k)#include<iostream>#include<cmath>#include<algorithm>usingnamespacestd;constintN=5e5;#defineintlonglongintb[N+2],pm[N+2],tot=0;intn;intpow3(intx){......
  • Gauss Prime UVA - 1415
     #include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=5e4;intb[N+2],pm[N+2],tot=0;voidinit(){b[1]=1;for(inti=2;i<=N;i++){if(b[i])continue;pm[++tot]=i;......