中矿大 C 石头剪刀布【决策DP*待看/codeforces原题】
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
输入描述:
输出描述:
输出一行结果,代表齐齐进行n盘对局后获得的最高分数。
输入
3
rock
paper
scissors
输出
3
说明
齐齐可以第1盘出“paper”,第2盘出“scissors”,第3盘出“rock”,最高分数3分。
输入
2
rock
rock
输出
1
说明
齐齐可以第1盘出“paper”,第2盘出“rock”,最高分数1分。 【分析】:

【代码】:
#include<iostream>
#include<cstdio>
#include<cstring> using namespace std; int dp[][] = {};
int n = ;
int s[] = {}; inline int getScole(int a,int b)
{
if(a==&&b==) return ;
if(a==&&b==) return -;
if(a==&&b==) return ;
if(a==&&b==) return -;
if(a==&&b==) return ;
if(a==&&b==) return -;
return ;
} int main()
{
cin>>n;
for(int i=;i<=n;i++)
{
char ss[];
cin>>ss;
if(strcmp(ss,"scissors") == )
{
s[i]=;
}
else if(strcmp(ss,"paper") == )
{
s[i]=;
}
else if(strcmp(ss,"rock") == )
{
s[i]=;
}
}
dp[][]=getScole(,s[]);
dp[][]=getScole(,s[]);
dp[][]=getScole(,s[]);
for(int i=;i<=n;i++)
{
for(int j=;j<;j++)
{
dp[i][j]=max(dp[i-][(j+)%],dp[i-][(j+)%])+getScole(j,s[i]);
}
}
cout<<max(max(dp[n][],dp[n][]),dp[n][])<<endl;
return ;
}
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<fstream>//石头1 剪刀2 布3
#include<cmath>
#include<algorithm>//while(r<l)
using namespace std;
int a[];
int dp1[];
int dp2[];
int dp3[];
char s[];
int main()
{
int n;
int ans=;
cin>>n;
memset(dp1,,sizeof(dp1));
memset(dp2,,sizeof(dp2));
memset(dp3,,sizeof(dp3));
for(int i=;i<n;i++)
{
cin>>s;
if(s[]=='r') a[i]=;
if(s[]=='s') a[i]=;
if(s[]=='p') a[i]=;
if(a[i]==)
{
dp3[i]+=;
dp2[i]-=;
if(i!=)
{
dp3[i]+=max(dp2[i-],dp1[i-]);
dp2[i]+=max(dp3[i-],dp1[i-]);
dp1[i]+=max(dp2[i-],dp3[i-]);
}
}
if(a[i]==)
{
dp1[i]+=;
dp3[i]-=;
if(i!=)
{
dp3[i]+=max(dp2[i-],dp1[i-]);
dp2[i]+=max(dp3[i-],dp1[i-]);
dp1[i]+=max(dp2[i-],dp3[i-]);
}
}
if(a[i]==)
{
dp2[i]+=;
dp1[i]-=;
if(i!=)
{
dp3[i]+=max(dp2[i-],dp1[i-]);
dp2[i]+=max(dp3[i-],dp1[i-]);
dp1[i]+=max(dp2[i-],dp3[i-]);
}
} }
cout<<max(max(dp1[n-],dp2[n-]),dp3[n-]);
return ;
}
2
中矿大 C 石头剪刀布【决策DP*待看/codeforces原题】的更多相关文章
- LibreOJ #516. 「LibreOJ β Round #2」DP 一般看规律
二次联通门 : LibreOJ #516. 「LibreOJ β Round #2」DP 一般看规律 /* LibreOJ #516. 「LibreOJ β Round #2」DP 一般看规律 set ...
- 前端自学vs跟大神系统学?你看着办
前端自学vs跟大神系统学?你看着办 一名广告专业学生,在大三的时候对于广告行业的前景不是很看好,转而自学web前端,刚开始接触的前端语言是html(html应该不算编程语言),上手很容易,在w3csh ...
- BZOJ_1827_[Usaco2010 Mar]gather 奶牛大集会_树形DP
BZOJ_1827_[Usaco2010 Mar]gather 奶牛大集会_树形DP 题意:Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来 ...
- [LOJ#516]「LibreOJ β Round #2」DP 一般看规律
[LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\ ...
- [原题复现][极客大挑战 2019]BuyFlag
简介 原题复现:[极客大挑战 2019]BuyFlag 考察知识点:php函数特性(is_numeric().strcmp函数()) 线上平台:https://buuoj.cn(北京联合大学公开 ...
- [原题复现][极客大挑战 2019]HardSQL(updatexml报错注入)
简介 原题复现: 考察知识点:SQL注入(报错注入,绕过过滤) 线上平台:https://buuoj.cn(北京联合大学公开的CTF平台 特别感谢!) 榆林学院内可使用信安协会内部的CTF训练平 ...
- P1373 小a和uim之大逃离 二维dp
题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...
- 【BZOJ】1827: [Usaco2010 Mar]gather 奶牛大集会(树形dp)
http://www.lydsy.com/JudgeOnline/problem.php?id=1827 仔细想想就好了,, 每个点维护两个值,一个是子树的费用,一个是除了子树和自己的费用.都可以用d ...
- 洛谷 P1373 小a和uim之大逃离 Label:dp 不会
题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...
随机推荐
- python利用PIL库使图片高斯模糊
一.安装PIL PIL是Python Imaging Library简称,用于处理图片.PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能 ...
- python - web自动化测试 - 元素操作 - 鼠标键盘
# -*- coding:utf-8 -*- ''' @project: web学习 @author: Jimmy @file: 鼠标操作.py @ide: PyCharm Community Edi ...
- An internal error occurred during: "Launching on Tomcat 7.x"
1.首先关闭MyEclipse工作空间.2.然后删除工作空间下的文件.“MyEclipse10\workspace.metadata.plugins\org.eclipse.core.runtime. ...
- python基础实践(二)
-*-越简单越快乐-*-# -*- coding:utf-8 -*-# Author:sweeping-monkQuestion_1 = "python中的整数运算"Method_ ...
- web知识清单
声名随笔中的实例链接到另一个博客是我本人的另一个博客号 模块一:HTML 1.html是什么: hyperText markup language超文本标记语言 超文本:比文本更丰富的内容 所有的浏览 ...
- wireshark简单使用
过滤表达式的规则 表达式规则 1. 协议过滤 比如TCP,只显示TCP协议. ip.src == 219.216.87.200 and ip.dst==219.216.87.254 2 ...
- Java 命令行编译项目
如果是用Exlipse, 第三方的包可以放在eclipse文件夹的jre包的lib文件夹中! (初学者的一些总结-高手们勿喷哈-) 原因: 以前一直用Eclispe编程环境运行Java.非常舒服,就像 ...
- [洛谷P4178]Tree
题目大意:给一棵树,问有多少条路径长度小于等于$k$ 题解:点分治 卡点:无 C++ Code: #include <cstdio> #include <algorithm> ...
- 【距离GDOI:131天】 后缀数组完毕
用了近两周的时间,终于把罗神那篇后缀数组应用看完了,题目也写了一遍,T了无数次...详见前几篇博文... 后缀数组很重要的是那个height数组,可以用来做各种奇奇怪怪的东西...常用方法去是去二分, ...
- POJ 1389 Area of Simple Polygons | 扫描线
请戳此处 #include<cstdio> #include<algorithm> #include<cstring> #define N 1010 #define ...