第二题 防御力伤害值那个我只通过了60%,不知道剩下没通过的案例是什么 //t贪心算法 //先找破不了防的 ,在从能破防里面 找伤害值最小的, //维护着一个列表 //哈弗曼差不多 #include<bits/stdc++.h> using namespace std; int bubble_sort(int a[][3],int n,int m)//m 表示求 第一列还是第二列最小值 { int min =INT_MAX; int flag = -1; for (int i = 0; i < n; i++) { if(a[i][m]<min && a[i][2] == 0) { min =a[i][m]; flag =i; } } return flag; } int main() { int n,D; cin>>n>>D; int pofang[n];// int power[n];//伤害值 int dp[n][3]; // [2]是visited 表示已经访问过 int count =0; //累计收到的伤害 memset(dp,0,sizeof(dp)); for (size_t i = 0; i < n; i++) { cin>>pofang[i]; dp[i][0] = pofang[i]; } for (size_t i = 0; i < n; i++) { cin>>power[i]; dp[i][1] = power[i]; } int end = D+n; while (D <end) { int flag = bubble_sort(dp,n,0); if (dp[flag][0]<= D) { dp[flag][2] =1; D++; } else { flag = bubble_sort(dp,n,1); dp[flag][2] =1; count+=dp[flag][1]; D++; } } cout<<count; return 0; }
点赞 2

相关推荐

牛客网
牛客企业服务