8VC Venture Cup 2016 - Elimination Round-A. Robot Sequence(模拟)

A. Robot Sequence
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Calvin the robot lies in an infinite rectangular grid. Calvin's source code contains a list of n commands, each either 'U', 'R', 'D', or 'L' — instructions to move a single square up, right, down, or left, respectively. How many ways can Calvin execute a non-empty contiguous substrings of commands and return to the same square he starts in? Two substrings are considered different if they have different starting or ending indices.

Input

The first line of the input contains a single positive integer, n (1 ≤ n ≤ 200) — the number of commands.

The next line contains n characters, each either 'U', 'R', 'D', or 'L' — Calvin's source code.

Output

Print a single integer — the number of contiguous substrings that Calvin can execute and return to his starting square.

Examples
input
6
URLLDR
output
2
input
4
DLUU
output
0
input
7
RLRLRLR
output
12
Note

In the first case, the entire source code works, as well as the "RL" substring in the second and third characters.

Note that, in the third case, the substring "LR" appears three times, and is therefore counted three times to the total result.



题意:
给出上下左右给你,问你在字符串【L,R】范围里有几个子串能回到开始时的位置。

思路:
题目给出的数据范围较小,果断暴力,暴力L,与R就行了,两重for循环枚举L,R就行了。

AC代码:

#include<iostream>
#include<functional>
#include<algorithm>
#include<cstring>
#include<string>
#include<vector>
#include<cstdio>
#include<cmath>
#include<map>
using namespace std;
#define CRL(a) memset(a,0,sizeof(a))
typedef unsigned __int64 LL;
typedef  __int64 ll;
#define CMP bool cmp(const node& a,const node& b){	return a.R<b.R||(a.R==b.R&&a.L<b.L); }
const int T = 503000;
const int mod = 1000000007;

struct node
{
	int U,D,L,R;
	friend void operator+(node& a,node& b){
		a.D += b.D,a.L += b.L;
		a.R += b.R,a.U += b.U;
	}
}a[500];

void fun(char s,node& b)
{
	if(s=='U')b.U++;
	else if(s=='D')b.D++;
	else if(s=='L')b.L++;
	else b.R++;
}

bool jugde(node a,node b)
{
	b.D -= a.D,b.L -= a.L;
	b.R -= a.R,b.U -= a.U;
	if(b.U==b.D&&b.L==b.R)
		return true;
	return false;
}

int main()
{
#ifdef zsc
    freopen("input.txt","r",stdin);
#endif

	int n,m,i,j,k;
	char s[500];

	while(~scanf("%d",&n))
	{
		memset(a,0,sizeof a);
		scanf("%s",&s);
		fun(s[0],a[1]);
		for(i=1;i<n;++i){
			fun(s[i],a[i+1]);
			a[i+1] + a[i];
		}
		k = 0;
		for(i=0;i<n;++i){
			for(j=i+1;j<=n;++j){
				if(jugde(a[i],a[j])){
					k++;
				}
			}
		}
		printf("%d\n",k);
	}

    return 0;
}



内容概要:本文详细分析了全球及中国财富管理市场的发展现状与未来趋势。全球财富管理市场起源于欧洲、发展于美国,美国财富管理市场经过百年发展,形成了以商业银行、综合财富管理平台和投资服务平台为代表的三类财富管理体系。中国财富管理市场正处于快速发展期,居民财富快速增长并向金融资产倾斜,资管新规引导市场健康发展。文中还探讨了中国财富管理市场的竞争格局,包括私人银行、银行理财、公募基金、券商资管、信托、第三方财富管理机构和互联网财富管理平台的发展情况。此外,公募基金投顾试点成为财富管理市场转型的重要探索,买方投顾模式逐步取代卖方投顾模式,AI赋能投顾业务,为行业发展带来新机遇。 适合人群:对财富管理行业感兴趣的投资者、金融从业者及研究机构。 使用场景及目标:①了解全球及中国财富管理市场的发展历程与现状;②掌握中国财富管理市场竞争格局及各机构的发展特点;③探索公募基金投顾试点对财富管理市场的转型意义及AI赋能投顾业务的应用前景。 阅读建议:本文内容详实,涵盖了财富管理市场的多个方面,建议读者重点关注中国财富管理市场的现状与发展趋势,特别是私人银行、银行理财、公募基金、券商资管等机构的具体发展情况,以及公募基金投顾试点和AI赋能投顾业务的创新模式。
6.0版更新说明: 1.根据2024年鉴整理,数据更新至2023年 2.新增指标,当前214个指标 5.0版更新说明: 数据更新至2022年 4.2版更新说明: 1.更新2021年部分指标数据 4.0版更新说明: 1.数据更新至2021年 2.调整部分旧指标 3.新增指标,当前190个指标 3.0版更新说明: 1.数据更新至2020年 2.调整部分指标,当前174个指标 2.4版更新说明: 1.更新部分缺失值 2.将数据转为平衡面板 3.填补升级。内含原始版本、线性插值、ARIMA填补三个版本数据 一、数据介绍 数据名称:中国城市数据库 数据来源:中国城市统计年鉴1991-2024年、地方统计局 数据年份:1990-2023年 数据范围:300个地级市(包括直辖市) 样本数量:平衡面板10200条(300*34=10200) 更新时间:2025年2月,当前最新6.0版 二、整理方法 第一,识别年鉴。利用NLP算法识别《中国城市统计年鉴》,并转为面板数据 第二,完善数据。对比主流数据库、地方统计局,进一步完善城市数据 第三,统一地区。匹配民政部编码,统一使用2019年编码和地区名称 第四,统一单位。对不同单位的情况,进行单位换算 第五,人工验证。得到所有指标的面板数据,并人工抽样验证 第六,平衡面板。将非平衡面板转为平衡面板数据 第七,线性插值。利用线性趋势对中间缺失进行填充,得到线性插值版 第八,ARIMA填补。利用时间趋势,对剩余缺失进行预测,得到ARIMA填补版 最终,保留原始版本、线性插值版、ARIMA填补版
内容概要:本文详细介绍了如何在HarmonyOS开发中使用Tabs组件构建底部页签。首先,文章强调了底部页签在提升用户体验和操作便捷性方面的重要性,随后介绍了Tabs组件的基本结构,包括TabBar和TabContent。接着,文章逐步引导读者搭建开发环境,包括安装DevEco Studio和配置项目。在此基础上,文章展示了Tabs组件的基础用法,如简单示例和组件结构解析。接下来,文章深入探讨了属性设置,如导航位置、滑动功能、动画时长等,以实现个性化定制。此外,文章还介绍了高级技巧,如滚动导航栏和自定义导航栏的实现方法。最后,通过一个电商应用的实际案例,展示了如何在实际项目中应用Tabs组件,以及开发过程中需要注意的事项和常见问题的解决方法。 适合人群:具有一定HarmonyOS开发基础的研发人员,尤其是希望提升用户交互体验的应用开发者。 使用场景及目标:①了解如何使用Tabs组件构建美观且实用的底部页签;②掌握底部页签的属性设置和高级技巧,如滚动导航栏和自定义导航栏;③解决开发过程中遇到的兼容性、布局适配和内存优化等问题。 其他说明:本文不仅提供了详细的代码示例和技术指导,还鼓励读者在实际项目中应用所学知识,不断探索HarmonyOS开发的更多可能性。通过学习本文,开发者可以更好地理解HarmonyOS开发的特点和优势,为用户打造更加出色的交互体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值