华中农业大学第五届程序设计大赛网络同步赛题解

本文主要是介绍华中农业大学第五届程序设计大赛网络同步赛题解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

A.Little Red Riding Hood

B.Choosy in Food

 

•F[i]:从第I个点到终点的期望步数

 

•F[i] = (F[i + k] + k ) * P[k]

 

•F[ed] = 0

 

•高斯消元求解

 

•注意存在从起点不能到达终点的情况

C.Friends

•F[rt][len] :节点rt的子孙里,距离rt的为len的节点个数

•ans[rt][len] : 整棵树上,距离rt为len的节点个数

•F值一次简单的深搜可以得到

•而ans[rt][len] = F[rt][len] + ans[fa(rt)][len – 1] – F[fa(rt)][len – 1]

D.GCD

 

E.One Stroke

 

•在每一个根到叶子结点的路径上用双指针即可求出一笔能画出的最多结点。

 

•双指针思路:枚举起点i,向右不断移动终点j,直到ij之间的和不大于k,复杂度O(nlogn)

 

•如果暴力优美也能过(T^T),复杂度O(nlognlogn)

F.Escape from the Darkness

G.Sequence Number

•这是一道排序可以过的题,也可以rmq+二分

•最快的写法可以用单调栈做到O(n)

H.Mathematical Game 

I.Candies

•线段树中查询一个区间里,最长的连续B区间的长度

•区间合并时考虑左间的右部连续B加上右区间的左部连续B区间可能会更新这个区间的MAX_B值

•同时更新区间的左部连续B长度时,考虑左区间全部为B时,应加上右区间的左B长度

•更新区间的右部连续长度同理

•查询时,同样要根据更新的原理来更新查询的答案

J.Color Circle

• 搜索,DFS即可

K.Deadline

•这题只要想到思路还是很简单的,假设所有工程师每天都在修复bug,那么对天数记录bug的前缀和,O(n)得到答案max(pre[i]+i-1)/i)

L.Happiness

 

Description

 

       Chicken brother is very happy today, because he attained N pieces of biscuits whose tastes are A or B. These biscuits are put into a box. Now, he can only take out one piece of biscuit from the box one time. As we all know, chicken brother is a creative man. He wants to put an A biscuit and a B biscuit together and eat them. If he take out an A biscuit from the box and then he take out a B biscuit continuously, he can put them together and eat happily. Chicken brother’s happiness will plus one when he eat A and B biscuit together one time.

      Now, you are given the arrangement of the biscuits in the box(from top to bottom) ,please output the happiness of Chicken Brother when he take out all biscuit from the box. 

 

Input

 

       The first line is an integer indicates the number of test cases.

       In each case, there is one line includes a string consists of characters ‘A’ and ‘B’.

       The length of string is not more than 1000000. 

 

Output

 

     For each test case:

    The first line output “Case #k:", k indicates the case number.    

    The second line output the answer. 

 

Sample Input

 

1
ABABBBA

 

Sample Output

 

Case #1:
2

 

HINT

 

 

Source

题解:

•求字符串中AB出现的次数

•遍历一次字符串即可

特别提醒:此题出题人已挖好大坑等着萌新们入坑,我也是第一次遇到这种100W就TL的情况,原因我给你们分析一下,就是这个strlen的应用,之前我将strlen放在for循环内,复杂度为100W*100W,O(n^2)必然超时,只要把strlen提出来,复杂度降为100W+100W,O(n+n),神TM知道这个函数调用也会TL!

下面附上AC代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 char s[1000010];
 4 int main()
 5 {
 6     int n;
 7     while(cin>>n)
 8     {
 9         int ans=0;
10         for(int i=1;i<=n;i++)
11         {
12             scanf("%s",s);
13             printf("Case #%d:\n",i);
14             int len=strlen(s);
15             int ans=0;
16             for(int j=0;j<len;j++)
17             {
18                 if(s[j]=='A'&&s[j+1]=='B')
19                     ans++;
20             }
21             printf("%d\n",ans);
22         }
23     }
24     return 0;
25 }

 

这篇关于华中农业大学第五届程序设计大赛网络同步赛题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/785346

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

Java中将异步调用转为同步的五种实现方法

《Java中将异步调用转为同步的五种实现方法》本文介绍了将异步调用转为同步阻塞模式的五种方法:wait/notify、ReentrantLock+Condition、Future、CountDownL... 目录异步与同步的核心区别方法一:使用wait/notify + synchronized代码示例关键

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如