题意:
给一个字符串代表相邻学生的比较,L代表左边多,R表示右边多,=表示左右相等。

保证每个人拿糖>=1,在分糖最少的情况下,输出每个学生所分得的糖。
思路:
模拟一下,第一个人一开始拿1个,然后模拟下去,如果是=,那就=前面的,如果是R,那就比前面的多一个,如果是L,最好的情况就是拿1个,但是有可能前面那个也是1,那么就往前更新,如果符号是=,前面那个等于现在的,如果是R,那么直接跳出,不用往前更新了,因为顺序的更新本身就比之前的大了,如果是L只要判断一下前面的是不是和当前的相等,是的话,前面的就要+1,不是还是跳出就好了;


#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int>PII;
const double eps=1e-5;
const double pi=acos(-1.0);
const int INF=0x3f3f3f3f; /*
老师分糖,给成绩好的人糖多。
给一个字符串代表学生拿糖的规律,有三种符号,L代表左边的人比自己高,R表示右边的高,=表示左右相等。
在保证分糖最少的情况下,输出每个学生所分得的糖。
*/ char stu[1010];
int dp[1010]; int main()
{
int n,len;
scanf("%d",&n);
scanf("%s",stu+1);
len=n;
dp[0]=1;
for(int i=1;i<len;i++)
{
if(stu[i]=='=')
dp[i]=dp[i-1];
else if(stu[i]=='R')
dp[i]=dp[i-1]+1;
else
{
if(dp[i-1]>1)
dp[i]=1;
else
{
dp[i]=1;
dp[i-1]++;
for(int j=i-1;j>=1;j--)
{
if(stu[j]=='=')
dp[j-1]=dp[j];
else if(stu[j]=='L')
{
if(dp[j-1]==dp[j])
dp[j-1]++;
else
break;
}
else
break;
}
}
}
}
for(int i=0;i<n;i++)
{
printf("%d ",dp[i]);
}
return 0;
}




Codeforces 67A【模拟】的更多相关文章

  1. CodeForces - 427B (模拟题)

    Prison Transfer Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Sub ...

  2. CodeForces - 404B(模拟题)

    Marathon Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit Sta ...

  3. Codeforces 709B 模拟

    B. Checkpoints time limit per test:1 second memory limit per test:256 megabytes input:standard input ...

  4. CodeForces - 404A(模拟题)

    Valera and X Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit ...

  5. Codeforces 390A( 模拟题)

    Inna and Alarm Clock Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64 ...

  6. Codeforces 452D [模拟][贪心]

    题意: 给你k件衣服处理,告诉你洗衣机烘干机折叠机的数量,和它们处理一件衣服的时间,要求一件衣服在洗完之后必须立刻烘干,烘干之后必须立刻折叠,问所需的最小时间. 思路: 1.按照时间模拟 2.若洗完的 ...

  7. CodeForces - 796B 模拟

    思路:模拟移动即可,如果球落入洞中停止移动.注意:有可能第一个位置就是洞!! AC代码 #include <cstdio> #include <cmath> #include ...

  8. CodeForces - 864C-Bus-(模拟加油站问题)

    https://vjudge.net/problem/CodeForces-864C 题意:两地之间有个加油站,往返走k个单程,最少加油多少次. 大佬几十行代码就解决,我却要用一百多行的if语句模拟解 ...

  9. Codeforces 709C 模拟

    C. Letters Cyclic Shift time limit per test:1 second memory limit per test:256 megabytes input:stand ...

随机推荐

  1. Greenplum使用简明手册

    GP服务启停 su - gpadmin gpstart #正常启动 gpstop #正常关闭 gpstop -M fast #快速关闭 gpstop –r #重启 gpstop –u #重新加载配置文 ...

  2. android Material

    目前已经两个团队做了不错的翻译 http://design.1sters.com/ http://www.ui.cn/Material/ https://github.com/stormzhang/9 ...

  3. Edit conflicts

    Edit conflicts 当副本修改处和服务器版本相同处被修改并下载到本地时,就会发生文件冲突. 操作步骤如下所示: Ø 执行"SVN Update" Ø 若发生冲突,会出现如 ...

  4. poj 1286 Necklace of Beads poj 2409 Let it Bead HDU 3923 Invoker <组合数学>

    链接:http://poj.org/problem?id=1286 http://poj.org/problem?id=2409 #include <cstdio> #include &l ...

  5. 笔记,将CString转换为数值

           ANSI UNICODE TCHAR int    atoi    _wtoi  _ttoi long       atol    _wtol _ttol double   atof   ...

  6. TTimer源码研究

    TTimerProc = procedure of object; IFMXTimerService = interface(IInterface) ['{856E938B-FF7B-4E13-85D ...

  7. 【NOIP 模拟赛】 道路

    题目描述在二维坐标平面里有 N 个整数点,信息班某一巨佬要访问这 N 个点.刚开始巨佬在点(0,0)处. 每一步,巨佬可以走到上.下.左.右四个点.即假设巨佬当前所在点的坐标是(x,y),那么它下一步 ...

  8. OC浅析一

    Objective-C是一门简单的语言,95%是C.只是在语言层面上加了些关键字和语法.真正让Objective-C如此强大的是它的运行时.它很小但却很强大.它的核心是消息分发. 在Objective ...

  9. java多线程-多线程常识

    线程和进程的区别是什么?进程是一个正在运行的软件程序,打开资源管理器可以看到好多正在运行的进程,而线程则是程序中的顺序控制流,只能使用分配给程序的资源和环境.一个进程至少存在一个线程(主线程). 在j ...

  10. 基于BASYS2的VHDL程序——数字钟(改进版)

    扩展到时分秒.加了入调时电路,但不知道为什么有两个按键不好使.而且不知道以何种方式假如按键消抖电路,因为加入后会多个时钟控制一个信号,物理不可实现.调试电路待解决.还有,四个数目管中间的那两个圆点怎么 ...