暴力求调!
查看原帖
暴力求调!
235459
acet楼主2022/10/26 20:38
#include<cstdio>
#include<cmath>

int main()
{
    int n,m,v,s=0,t=0;
	scanf("%d %d",&n,&m);
	float x[n];
	int b[n][2],p[n],a[n];
	for(int i=0;i<n;i++){
		scanf("%d %d %d",&b[i][0],&b[i][1],&v);
		p[i]=0;
		x[i]=b[i][0]+v*sqrt(2.0*b[i][1]/9.8);
		for(int j=0;j<i;j++)
			if(b[j][1]==b[i][1]&&(b[i][0]-b[j][0])*(x[i]-x[j])<=0){
				p[i]++;p[j]++;
			}
	}
	for(int i=0,u;i<n;i++){
		scanf("%d",&u);
		u=u>p[i]?p[i]:u;
		s+=p[i];
		if(u>a[i-1]){
			for(int j=i;j;j--)
				a[j]=a[j-1];
			a[0]=u;
		}
		else
			a[i]=u;
	}
	for(int i=0;i<m;i++)
		t+=a[i];
	printf("%d",s-t);
    return 0;
}
  • v--速度
  • s--威力p[i]的和
  • t--将每个威力p[i]与减少值a[i]的最小值排序后的前m项和(最终减少总值)
  • x[i]--i的落点
  • b[i][0]--i的起始横坐标;b[i][1]--i的起始纵坐标
  • p[i] a[i]--如题中所述

只ac了两个,wa了8个,tle了10个

tle不出预料,但wa挺纳闷。求教大佬。

附一组错解:

in:
10 3
3 7 -3
7 7 8
1 7 -9
-8 7 4
-4 7 -2
1 3 1
-5 7 0
-2 3 9
9 7 5
0 3 7
6 8 10 7 2 5 4 2 8 5

标答: 9
我的输出: 15

2022/10/26 20:38
加载中...