重庆邮电大学第十一届ACM程序设计竞赛-网络选拔赛 C题
1008: 偷袭
时间限制: 1.000 sec 内存限制: 128 MB
武林要以和为贵,张麻子不讲武德来偷袭马老师的亲传弟子。
马老师有n个亲传弟子,每个弟子有一个武力值a[i]。
n个弟子中只有某些弟子学会了闪电鞭,张麻子想知道如果自己的武力值为W可以打败多少个会闪电鞭的亲传弟子(只有W严格大于a[i],才可以打败第i个弟子)。
输入
第一行一个整数T(1<=T<=100),表示数据组数
每组数据第一行两个整数n(1<=n<=100000),m(1<=m<=100000),分别表示亲传弟子数量,询问的数量
接下来一行n个整数,第i个整数a[i]表示第i个弟子的武力值(0<=a[i]<=100000)
接下来一行n个整数,第i个整数b[i]为1或0,b[i]为1表示第i个弟子会闪电鞭,为0则不会闪电鞭.
接下来m行,每行一个整数W(0<=W<=100000)表示张麻子武力值
保证所有T组数据的n加起来不超过100000,m加起来不超过100000
输出
输出T组数据
每组数据输出m行,每行一个整数,表示张麻子武力值为W时,能打败的会闪电鞭的弟子数量
样例输入
1
5 3
1 2 3 2 1
1 0 1 1 0
0
1
6
样例输出
0
0
3
这道题卡时间卡的比较厉害,其他都还好
题解用的文件输入,在本地调试需要用一个a.txt来输入
#include <stdio.h>
#include <stdlib.h>
#define DEBUG 0 //提交的时候需要把DEBUG设为0
#if DEBUG
#else
#define fp stdin
#endif
int fight[100000];
int* follow; //总共100000个元素 下标即为战斗力
int main() {
#if DEBUG
FILE* fp;
#endif
int t;
int i, j;
int n, m;
int master;
int w;
int cnt;
int total; //会闪电鞭的弟子总数
int max, min;
#if DEBUG
fp = fopen("a.txt", "r");
#endif
while (fscanf(fp, "%d", &t) != EOF) { //读入t
break;
}
while (t--) {
max = -1;
min = 100001;
while (fscanf(fp, "%d%d", &n, &m) != EOF) { //读入每组开头的n和m
break;
}
for (i = 0; i < n; i++) {
while (fscanf(fp, "%d", &fight[i]) != EOF) { //将每名弟子的战斗力存入数组
break;
}
if (max < fight[i]) { //找最大值
max = fight[i];
}
if (min > fight[i]) { //找最小值
min = fight[i];
}
}
total = 0; //每次判断前初始化total为0
follow = (int*)calloc(sizeof(int), 100001); //使用calloc在堆中为follow开辟空间并初始化为0
for (i = 0; i < n; i++) {
while (fscanf(fp, "%d", &master) != EOF) {
break;
}
if (master == 1) {
follow[fight[i]]++; //follow的下标即为战斗力, follow元素存的是总人数, 例如follow[2] = 3, 战斗力为2的弟子总共有3人
total++; //计算会闪电鞭的弟子的总人数
}
}
i = m;
while (i--) {
while (fscanf(fp, "%d", &w) != EOF) {
break;
}
if (w <= min) { //张麻子比最弱的还弱, 输出0
printf("0\n");
continue;
}
else if (w > max) { //张麻子比最强的还要强, 输出弟子总数
printf("%d\n", total);
continue;
}
//张麻子战斗力在中间则从w-1开始, 往后求和, 到min结束
cnt = 0;
for (j = w - 1; j >= min; j--) {
cnt += follow[j];
}
printf("%d\n", cnt);
}
free(follow); //回收follow的内存空间以便再次申请
}
return 0;
}
重庆邮电大学第十一届ACM程序设计竞赛-网络选拔赛 C题的更多相关文章
- 2018中国大学生程序设计竞赛 - 网络选拔赛 1001 - Buy and Resell 【优先队列维护最小堆+贪心】
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6438 Buy and Resell Time Limit: 2000/1000 MS (Java/O ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 1010 YJJ's Salesman 【离散化+树状数组维护区间最大值】
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6447 YJJ's Salesman Time Limit: 4000/2000 MS (Java/O ...
- HDU 6154 CaoHaha's staff(2017中国大学生程序设计竞赛 - 网络选拔赛)
题目代号:HDU 6154 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6154 CaoHaha's staff Time Limit: 2000/1 ...
- 2016中国大学生程序设计竞赛 - 网络选拔赛 C. Magic boy Bi Luo with his excited tree
Magic boy Bi Luo with his excited tree Problem Description Bi Luo is a magic boy, he also has a migi ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 1009 - Tree and Permutation 【dfs+树上两点距离和】
Tree and Permutation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- HDU 6154 - CaoHaha's staff | 2017 中国大学生程序设计竞赛 - 网络选拔赛
/* HDU 6154 - CaoHaha's staff [ 构造,贪心 ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 题意: 整点图,每条线只能连每个方格的边或者对角线 问面积大于n的 ...
- HDU 6150 - Vertex Cover | 2017 中国大学生程序设计竞赛 - 网络选拔赛
思路来自 ICPCCamp /* HDU 6150 - Vertex Cover [ 构造 ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 题意: 给了你一个贪心法找最小覆盖的算法,构造一组 ...
- HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛
普通的数位DP计算回文串个数 /* HDU 6156 - Palindrome Function [ 数位DP ] | 2017 中国大学生程序设计竞赛 - 网络选拔赛 2-36进制下回文串个数 */ ...
- 河南省第十一届ACM程序设计竞赛 修路
Problem C: 修路 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 63 Solved: 22[Submit][Status][Web Boar ...
随机推荐
- 实型(浮点型):float、double
实型(浮点型):float.double 实型变量也可以称为浮点型,浮点型变量是用来存储小数数值的.在C语言中,浮点型分为两种:单精度浮点型(float).双精度浮点型(double),但是doubl ...
- Python之smtplib模块
工作中难免会出现自动发送电子邮件的需求,比如说做完自动化测试之后通过电子邮件的形式将结果反馈出来.Python中提供了标准库smtplib来解决这一问题,该模块定义了一个smtp客户端会话对象,能够将 ...
- 数据库CPU 100%处理记录
问题描述 2020年7月13日一大早收到告警,测试环境数据库CPU告警. 登录aws查看监控如下图 问题分析 出现这种cpu 100%的问题,都是因为sql性能问题导致的, 主要表现于 cpu 消 ...
- 快速模式第三包收尾之quick_inI2()
快速模式第三包收尾之quick_inI2() 文章目录 快速模式第三包收尾之quick_inI2() 1. 序言 2. quick_inI2()处理流程图 3. 报文格式 4. quick_inI2( ...
- 如何让阿三 Windows 10、11 的恢复分区(Recovery Partition)恢复到 “盖茨” 模式
如何将 Windows Server 2022 的恢复分区(Recovery Partition)移动到 C 盘之前,恢复 C 盘容量调整功能. 请访问原文链接:https://sysin.org/b ...
- 网络层协议、ARP攻击
一.IP数据包格式 二.ICMP协议介绍 PING命令 三.ARP协议介绍 四.ARP攻击原理 一.IP数据包格式 网络层的功能 定义了基于IP协议的逻辑地址 连接不同的媒介类型 选择数据通过网络的最 ...
- 'Specifying a namespace in include() without providing an app_name '报错解决
需要在每个ap下面的url.py 加入一个指定app的名字 比如 user app 下的 url.py 文件加入: urlpatterns = []app_name = "user& ...
- windows下配置VSCode免密SSH连接Linux机器
先决条件 Windows下安装openssh软件(win10自带,可以不用搞) 从官网下载最新版本默认安装即可 VSCode安装插件 VSCode官方市场获取两个插件:"Remote - S ...
- ZBLOG PHP调用相关文章列表以及上一篇下一篇文章代码
如果是比较小的个人博客.专题类网站项目,老蒋还是比较喜欢使用ZBLOG PHP程序的,无论是轻便度还是易用性上比WordPress简单很多,虽然WP的功能很强大,比如强大的插件和主题丰富功能是当前最为 ...
- PHP中非常好玩的Calendar扩展学习
为什么说这个 Calendar 扩展很好玩呢?因为你基本用不到它!这个扩展是一套关于日期历法的扩展,但是对于我们来说,它没有农历的相关操作,所以对于我们中国人来说这个扩展并没有什么实际的作用.不过这并 ...