HDU 3363 冰糖葫芦
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3363
题目解析:
首先如果两种水果可以平分,肯定在2刀内;
推理:
冰糖葫芦上有两种水果 H和T,当且仅当H和T都为偶数时才能将冰糖葫芦分成两份,每份两种水果H、T个数相等;
我们把冰糖葫芦首尾连接,看成一个圆,圆上有H、T两种,当H、T都为偶数时,我们只看其中一种水果 假设看H,圆上有偶数个H,将圆劈成两半 每一半H个数相等,则T一定也相等(T=N/2 - H, N为总个数)。如果将圆劈成两半经过连接的首尾则只需要一刀,否则两刀。
程序先看H、T是否偶数;
再看一刀是否可以;
再看两刀,遍历中间N/2个水果中何时水果H个数为一半
#include<iostream>
using namespace std;
int main(){int n;char str[100005];int hh[100005];while(cin>>n && n){cin>>str;if(n%2!=0){cout<<-1<<endl; //总数非偶数continue;} int count=0;for(int i=0;i<n;i++){if(str[i]=='H') count++;hh[i]=count; //hh数组存储到第i+1个水果时H累计个数}if(count%2!=0){cout<<-1<<endl; //H个数非偶数continue;}if(hh[n/2-1]==count/2){cout<<1<<endl<<n/2<<endl;continue;}for(int i=1;i<n/2;i++){if(hh[i+n/2-1]-hh[i-1]==count/2){ //到第i+n/2个水果H的个数减去到第i个水果H的个数,//即第i+1到第i+n/2, n/2个水果的这一段cout<<2<<endl<<i<<" "<<i+n/2<<endl;break;}} }}
HDU 3363 冰糖葫芦相关推荐
- HDU题目分类大全【大集合】
基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.105 ...
- 转载:Hdu 题目分类
原址点击 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056. ...
- hdu与poj题目分类
POJ 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(po ...
- hdu HDOJ 题目分类(转)
动态规划:2037 2054 2084 hdu题目分类(转) http://apps.hi.baidu.com/share/detail/17053154 1001 整数求和 水题 1002 C语言实 ...
- HDU——1106排序(istringstream的使用、STLvector练习)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- hdu 5438 Ponds 拓扑排序
Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
- hdu 1312 Red and Black 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...
- HDU 1429 胜利大逃亡(续) (BFS+位压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others) ...
最新文章
- (0047)iOS开发之nil/Nil/NULL的区别
- java 详解 搭建 框架_在Eclipse中搭建Struts框架过程详解
- ASP.NET页面刷新的几种实现方法
- Error starting userland proxy: listen tcp 0.0.0.0:5601: bind: address already in use
- [蓝桥杯]算法提高 金属采集(树形dp)
- 基本程序 打印Scala的Hello World
- [恢]hdu 2074
- spring之jdbcTemplate的增删改查操作--不使用配置文件
- xhprof 性能分析工具
- Precious Plastic 中文手册 V1.0
- 学校老师要求微信群里的家长下载钉钉建群,解散微信群,钉钉是不正当商业竞争吗?
- CPDA数据分析师证书含金量高吗?
- React初识--必知必会的jsx核心语法
- 线上知识付费潮流中的青年人:寻找消费与求知的平衡点
- Windows MySQL 下载及安装教程
- 工艺角,PVT, TT,SS,FF,FS,SF
- PHP实现RSA算法
- Vue 引入 icon 图标
- MySQL Status意义
- MS SQL 2008 Express 下载
热门文章
- qml+QQuickPaintedItem笛卡尔坐标和屏幕坐标的转换
- kali操作系统安装
- 杨冬敏老师:老板懂点财务知识,看懂三张报表
- 游戏开发15课 微信小游戏自审报告
- 无线图传发射模块静电浪涌测试
- WebRTC Native M96收集网卡地址信息以及筛选过滤VPN网络(CreateNetworks、FilterNetworks)
- Java中八大基本数据类型详解
- backbone php,backbone-phpRestful并行
- 收集回顾 SharePoint 历史版本比较 SharePoint Server 2019
- pytorch 安装笔记