4565112_mle.cpp
来自「部分PKU上的源码」· C++ 代码 · 共 88 行
CPP
88 行
#include<iostream>
#include<stdlib.h>
using namespace std;
int n;
int t;
int k;
/*struct gan
{
int time;
int pro;
int need;
};
gan x[100];*/
int time[101];
int pro[101];
int need[101];
int input[100][30000];
int p[101][101];
int compare(const void *p1,const void *p2)
{
int temp1=*(int *)p1;
int temp2=*(int *)p2;
return temp1-temp2;
}
int get(int a,int b)
{
if(a>=0&&a<n&&b>=0&&b<=k) return p[b][a];
else return 0;
}
void tian(int a,int b,int now)
{
int dt;
if(now==0) dt=time[now];
else dt=time[now]-time[now-1];
int max=0;
for(int count=b-dt;count<=b+dt;count++)
{
if(get(a-1,count)>max) max=get(a-1,count);
}
p[b][a]=max+input[b][time[now]];
}
int main()
{
cin>>n>>k>>t;
for(int count=0;count<n;count++) cin>>time[count];
for(int count2=0;count2<n;count2++) cin>>pro[count2];
for(int count3=0;count3<n;count3++) cin>>need[count3];
//qsort(x,n,sizeof(struct gan),compare);
//hebing();
memset(input,0,sizeof(input));
for(int count4=0;count4<n;count4++)
{
input[need[count4]][time[count4]]+=pro[count4];
}
qsort(time,n,sizeof(int),compare);
int a=0;
for(int count5=0;count5<n;count5++)
{
if(count5!=0&&time[count5]==time[count5-1])
{
continue;
}
else
{
for(int count6=0;count6<=k;count6++)
{
tian(a,count6,count5);
}
a++;
}
}
int max=0;
/*
for(int tiao2=0;tiao2<=k;tiao2++)
{
for(int tiao1=0;tiao1<a;tiao1++)
cout<<p[tiao2][tiao1]<<" ";
cout<<endl;
}
*/
for(int count7=0;count7<=k;count7++)
{
if(p[count7][a-1]>max) max=p[count7][a-1];
}
cout<<max;
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?