A - 摆仙果
题目描述
Adrian, Bruno与Goran三人参加了仙界的宴会,宴会开始之前先准备了一些仙果供三人品尝,但是仙果的摆放有顺序要求,如果把仙果摆错了位置,仙果就会消失而无法品尝到。
由于三人是第一次来仙界,也不知道究竟是怎样的摆放方法,它们就按自己的想法摆放仙果。假设仙果种类共有3种,分别记为A,B,C,那么三人的摆放方法分别为
Adrian采用ABCABCABC...的排列方式
Bruno采用BABCBABCBABC...的排列方式
Goran采用CCAABBCCAABB...的排列方式
现在告诉你正确的仙果的摆放方式,请你算一下谁能吃到的仙果最多
数据输入
第1行有一个整数N,表示共有N个仙果。第2行有N个仅由ABC组成的字符,表示仙果正确的摆放位置。
1 ≤N≤100
数据输出
第1行输出一个整数,代表一个人最多有几个仙果摆放正确。接下来的行中,输出摆放仙果数最多的人名,若有多人都摆放对了最多数量的仙果,则按字典序在每行中输出1个名字。
解决方案
- 我的方案
#include<bits/stdc++.h>
using namespace std;
char Ad[3]={'A','B','C'};
char Br[4]={'B','A','B','C'};
char Go[6]={'C','C','A','A','B','B'};
bool cmp(const pair<char,int>& a, const pair<char,int>& b){
if(a.second == b.second) return a.first<b.first;
return a.second>b.second;
}
map<char,int> c;
int main(){
c['A']=c['B']=c['G']=0;
int N;
string R;
cin>>N>>R;
for(int i=0;i<R.length();i++){
if(R[i]==Ad[i%3])c['A']++;
if(R[i]==Br[i%4])c['B']++;
if(R[i]==Go[i%6])c['G']++;
}
vector<pair<char,int>> vec(c.begin(),c.end());
sort(vec.begin(),vec.end(),cmp);
int biggest=vec[0].second;
printf("%d\n",biggest);
if(vec[0].first=='A')printf("Adrian");
if(vec[0].first=='B')printf("Bruno");
if(vec[0].first=='G')printf("Goran");
for(int i=1;i<vec.size();i++){
if(vec[i].second==biggest){
if(vec[i].first=='A')printf("\nAdrian");
if(vec[i].first=='B')printf("\nBruno");
if(vec[i].first=='G')printf("\nGoran");
}
}
return 0;
}
A - 摆仙果的更多相关文章
- BZOJ 2648: SJY摆棋子
2648: SJY摆棋子 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 2968 Solved: 1011[Submit][Status][Disc ...
- 【BZOJ-2648&2716】SJY摆棋子&天使玩偶 KD Tree
2648: SJY摆棋子 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 2459 Solved: 834[Submit][Status][Discu ...
- BZOJ 2648: SJY摆棋子 kdtree
2648: SJY摆棋子 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2648 Description 这天,SJY显得无聊.在家自己玩 ...
- FZU 1025 状压dp 摆砖块
云峰菌曾经提到过的黄老师过去讲课时的摆砖块 那时百度了一下题目 想了想并没有想好怎么dp 就扔了 这两天想补动态规划知识 就去FZU做专题 然后又碰到了 就认真的想并且去做了 dp思想都在代码注释里 ...
- 【BZOJ】【2648】SJY摆棋子&【BZOJ】【2716】【Violet 3】天使玩偶
KD-Tree 传说中的kd树...前去膜拜了一下……写道模板题>_< 写kdtree的一些感想: 插入的时候是像可持久化线段树一样直接在最后开新节点,然后更新它所在的块.. 然而其实也是 ...
- SimMechanics/Second Generation倒立摆模型建立及初步仿真学习
笔者最近捣鼓Simulink,发现MATLAB的仿真模块真的十分强大,以前只是在命令窗口敲点代码,直到不小心敲入simulink,就一发不可收拾.话说simulink的模块化建模确实方便,只要拖拽框框 ...
- matlab-双摆仿真
在物理学和数学中,在动力系统领域,双摆是一个摆锤,另一个摆锤连接在其末端,是一个简单的物理系统,具有丰富的动态特性,对初始条件具有很强的敏感性.双摆的运动由一组耦合的常微分方程控制并且是混沌的. 由于 ...
- win10 常用设置 桌面出来计算机图标,固定桌面摆好的图标设置方法,电脑设备ID方法
win10 常用设置 桌面出来计算机图标,固定桌面摆好的图标设置方法 桌面右键-->显示设置-->桌面图标设置 电脑设备ID:xxx查看方法:桌面右键-->显示设置-->关于
- bzoj2716/2648 / P4169 [Violet]天使玩偶/SJY摆棋子
P4169 [Violet]天使玩偶/SJY摆棋子 k-d tree 模板 找了好几天才发现输出优化错了....真是zz...... 当子树非常不平衡时,就用替罪羊树的思想,拍扁重建. luogu有个 ...
随机推荐
- C++设计模式 ==> 策略模式与简单工厂模式结合
简介 策略模式相较之于简单工厂模式适用于生产方法经常变化且方法较为繁多的情况,因为生产方法时常变化就会需要频繁修改工厂类,违背了开闭原则,这时就可以用策略选择类由客户端根据需求动态切换策略.且策略模式 ...
- 2.3Python基础语法(三)之输入输出
返回总目录 目录: 1.input输入 2.print输出 (一)input输入 1.input的处理方式 # 输入input string = input("请输入一个字符串:" ...
- JDK 环境变量 Windows配置
安装完成JDK后需要配置环境变量,下面是环境变量的配置方法 1.配置环境变量: 对于Java程序开发而言,主要会使用JDK的两个命令:javac.exe.java.exe.路径:C:\Java\jdk ...
- [Java123] Spring
最近转组需要Hands on进行一些Java开发工作. 已经不是用十几年前初级Java写代码就能应付的了. 踏踏实实拾起来过去含含糊糊走过的章节吧. https://www.cnblogs.com/x ...
- Ubuntu安装 Alisql编译安装步骤:
github地址: https://github.com/alibaba/AliSQL 一.直接git下载保存到本地: git clone https://github.com/alibaba/Ali ...
- [转]VS2015+OpenCV3.3 GPU模块和opencv_contrib模块的编译以及采用CMake编译opencv_contrib时提示“No extra modules found in folder”问题的解决方案
据官方说法,目前还不是太稳定的算法模块都在opencv_contrib里边,由于不稳定,所以不能在release版本里发行,只有在稳定以后才会放进release里边.但是这里边有很多我们经常要用的算法 ...
- JAVA框架 Mybaits 核心配置
一:mybaits的核心配置文件:SqlMapConfig.xml 配置文件中需要关注的属性: 二.properites属性:一般引用配置文件(properites文件)比如:数据库的配置.我们可以编 ...
- JAVA框架:hibernate(二)
一.事务操作. 代码: @Test public void tr_Up(){ Session session=hibernateUtils.getSession(); Transaction tran ...
- 在ROS中使用QT界面
在终端可以直接用catkin_create_qt_pkg命令创建带Qt界面的ROS package,再按照前面说的方法导入到Qt即可 这里参考的是qt_createTutorialsQt App Te ...
- 板载CAN的树莓派扩展板Strato Pi CAN
板载CAN的树莓派扩展板Strato Pi CAN Sfera Labs推出了最新的树莓派扩展组件“灵云派”,其中包括CAN总线,电气隔离的RS-485,RTC和9-65V电源. 位于意大利米兰的 ...