CodeForces 626A Robot Sequence

枚举一下就好,时间复杂度o(n*n)

#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<vector>
#include<queue>
#include<algorithm>
#include<iostream>
using namespace std;

struct X
{
    int x;
    int y;
}p[200+10];
char s[200+10];
int n;

int main()
{
    scanf("%d",&n);
    scanf("%s",s);
    p[0].x=0;
    p[0].y=0;
    for(int i=0;s[i];i++)
    {
        p[i+1].x=p[i].x;
        p[i+1].y=p[i].y;
        if(s[i]==‘U‘) p[i+1].y++;
        if(s[i]==‘D‘) p[i+1].y--;
        if(s[i]==‘L‘) p[i+1].x--;
        if(s[i]==‘R‘) p[i+1].x++;
    }
    int ans=0;
    for(int i=0;i<=n;i++)
        for(int j=i+1;j<=n;j++)
            if(p[i].x==p[j].x&&p[i].y==p[j].y)
                ans++;
    printf("%d\n",ans);
    return 0;
}
时间: 2024-10-05 18:48:58

CodeForces 626A Robot Sequence的相关文章

Codeforces 97D Robot in Basement bitset+模拟

题目链接:点击打开链接 题意: 每个点有一个机器人(.),下面是一些指令,每次发出指令(一个字母)所有机器人都会执行移动. 当机器人到E点就会离开. 若机器人前方是'#' 或者边界则停留原地.一个方格可以站多个机器人. bitset模拟.. #include <cstdio> #include <cstring> #include <algorithm> #include <bitset> using namespace std; char s[100005

Codeforces 466D Increase Sequence(dp+组合数学)

题目链接:Codeforces 466D Increase Sequence 题目大意:给定一个序列,现在可以选中一段区间,使得整段区间上每个位置数加1,要求最后每个位置都为h,并且选中的区间不能有相同l或则r. 解题思路:因为每个位置最多有一个起始和一个终止(区间). ai和ai+1差的绝对值超过1,则肯定是不行的, ai+1?ai=1,那么一定要从i+1的位置新起一段区间 ai+1?ai=?1,那么一定要在i+1的位置上终止一段区间,C(1ai) ai+1?ai=0,可以不变,也可以终止并新

codeforces 645D Robot Rapping Results Report

二分一下答案check即可.(拓扑排序) #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<algorithm> #define maxv 100500 #define maxe 200500 using namespace std; int n,m,nume=0,g[maxv],x[maxv],y[maxv],d[maxv],rank[m

CodeForces 622A Infinite Sequence

简单题,公式打了个表,查询的时候二分一下就行.也可以直接o(1)公式出解. #include <stdio.h> #include <algorithm> #include <string.h> #include <queue> #include <stack> #include <map> #include <vector> using namespace std; long long a[20000005]; int

Codeforces 223A Bracket Sequence [栈]

给一串由(, ), [ ,]构成的字符串,求包含[最多的合法子串 很容易,先把整个字符串丢入栈里处理 栈的每一个元素存两个东西,字符,在字符串中的位置 处理方式为如果是()匹配则直接丢弃,如果是[]匹配则在这个点vis[i]++,然后求vis的前缀和 如果栈空,则说明整个串是合法的,直接输出串 否则,扫描栈中剩下的元素的位置,这几个位置把整个原串切割成几段,这几段肯定是合法的,求这几段中的含[最大的段,可以用前缀和求得,输出这段 游标,左右区间非常容易弄错.有一次手动输出了'\0',导致看起来和

[Codeforces 346D] Robot Control(01BFS)

题意 有一个 \(N\) 个点, \(M\) 条边的有向图, 初始有一个机器人在 \(1\) 号点. 每个时刻, 这个机器人会随机选择一条从该点出发地边并通过.当机器人到达点 \(N\) 时, 它就会自动关闭. 然而这个机器人如果在某个时刻到达自己曾经到过的点的话, 它就会爆炸. 因此, 你决定对机器人实施一些命令, 让它在某些时候按照规定的边走, 而非随机选择. 问对机器人最少使用多少条命令可以让它安全到达点 \(N\) . \(N, M \le 10^6\) 题解 十分巧妙的一道好题- 首先

8VC Venture Cup 2016 - Elimination Round

在家补补题   模拟 A - Robot Sequence #include <bits/stdc++.h> char str[202]; void move(int &x, int &y, char ch) { if (ch == 'U') x--; if (ch == 'D') x++; if (ch == 'L') y--; if (ch == 'R') y++; } int main(void) { int n; scanf ("%d", &

3.29 练习赛

//比赛时的代码感觉写得真心难看......Orz,还有一堆低级错误贴出来晒晒吧 Problem A     CodeForces 329A     Purification 2A 1 #include "bits/stdc++.h" 2 using namespace std; 3 char mat[110][110]; 4 int n; 5 int row_Col[110], col_Row[110]; 6 7 bool dir_row() 8 { 9 int i, j; 10 b

前端自动化测试工具doh学习总结(二)

一.robot简介 robot是dojo框架中用来进行前端自动化测试的工具,doh主要目的在于单元测试,而robot可以用来模仿用户操作来测试UI.总所周知,Selenium也是一款比较流行的前端自动化测试工具,与Selenium相比robot的优点在于robot触发的浏览器事件是真正的用户操作事件,而Selenium中的事件属于"合成事件".打个比方,用户在一个textbox元素上触发了mousedown事件,但是在触发mousedown事件之前,肯定会触发mouseover等事件.