解题思路:
1.从小到大排序
2.对于每一个防御系统,都用大于它的进攻系统
3.没有任何攻击系统能打败的防御系统,直接输出0,无法伤害
4.遍历累计没有用过的进攻系统
注意事项:
数组开大一点,否则会运行错误
还要加一点时间优化,具体见代码
参考代码:
#include <bits/stdc++.h> using namespace std; int a_df[100001],a_at[100001]; bool book[100001]; //开大一点,否则会运行错误 int main() { int n,m; scanf("%d%d",&m,&n); //优化速度 for(int i = 1; i <= m; i++) scanf("%d",&a_df[i]); //优化速度 for(int i = 1; i <= n; i++) scanf("%d",&a_at[i]); //优化速度 if(n < m) { cout << 0 << endl; return 0; }//直接排除 sort(a_df+1,a_df+m+1); sort(a_at+1,a_at+n+1); bool flag; int d = 1; //优化 for(int i = 1; i <= m; i++) { flag = true; for(int j = d; j <= n; j++) if(!book[j] && a_at[j] > a_df[i]) { d = j;//从上一次的位置开始,规模大时不超时 book[j] = true; flag = false; break; } if(flag)//没有进行处理,没有攻击系统能敌过它 { cout << 0 << endl; return 0; } } int sum = 0; for(int i = 1; i <= n; i++) if(!book[i])//没有用的攻击系统 sum += a_at[i]; printf("%d\n",sum); //优化速度 return 0; }
0.0分
2 人评分
点我有惊喜!你懂得!浏览:1705 |
点我有惊喜!你懂得!浏览:1166 |
C二级辅导-计负均正 (C语言代码)浏览:607 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:609 |
字符串输入输出函数 (Java代码)浏览:1498 |
蓝桥杯历届试题-九宫重排 (C++代码)浏览:2812 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:783 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:737 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:687 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:583 |