洛谷 2708 硬币翻转 特判? 解题报告
来源:互联网 发布:模拟退火算法题目应用 编辑:程序博客网 时间:2024/06/10 20:15
题目背景
难度系数:☆☆☆☆☆(如果你看懂了)
题目描述
从前有很多个硬币摆在一行,有正面朝上的,也有背面朝上的。正面朝上的用1表示,背面朝上的用0表示。现在要求从这行的第一个硬币开始,将n个硬币(1<=n<=硬币个数)一起翻面,问如果要将所有硬币翻到正面朝上,最少要进行这样的操作多少次?
输入输出格式
输入格式:
一个字符串(当然不限长度,在字符串范围之内),有0和1组成
输出格式:
要翻转的最少次数
输入输出样例
输入样例#1:
10
输出样例#1:
2
说明
样例1说明:
第1次翻转:把第一个硬币翻到反面,字符串为00
第2次翻转:把第一、二个硬币一起翻到正面,字符串为11,翻转完成,输出2
思路
除了开头是0只加上1,其他的就是0的块块数量*2。。。
好贪心啊表示这不是BFS题吗哈哈哈。。。
被我给水过了哈哈。。。
代码
很清真
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cmath>using namespace std;const int N=1e6+5;char s[N];int n,num[N],pos,tot=0; int main(){ scanf("%s",s+1); n=strlen(s+1); for (int i=1;i<=n;i++) num[i]=s[i]-'0'; int flag=0,now=0; if (num[n]==0) tot++; if (num[1]==0) now=1; for (int i=1;i<=n;i++) { if (num[i]==0) flag=1; if (flag==1&&num[i]==1) {flag=0;tot++;} } printf("%d\n",tot*2-now); return 0;}//10001001
阅读全文
0 0
- 洛谷 2708 硬币翻转 特判? 解题报告
- 【解题报告】硬币问题
- OJ解题报告 4976:硬币
- [1205 单词翻转] 解题报告
- 解题报告:硬币排成线 II
- 解题报告:硬币排成线 II
- POJ 2692 称硬币 解题报告
- hdoj-2566-统计硬币(解题报告)
- |洛谷|模拟|P1146 硬币翻转
- 翻转硬币
- 硬币翻转
- UVa 11549 Calculator Conundrum 解题报告(判环)
- poj 2204 hdu 1217 Arbitrage spfa判环 解题报告
- 【HDU5527 2015长春赛区A】【贪心 特判模拟】Too Rich 最多硬币数支付 因子思想 贪心打补丁
- NIT-OJ-1449-最少硬币问题-解题报告
- 智力题解题报告No.15 杯子放硬币
- 【解题报告】uva674_Coin Change(硬币找零, dp, 完全背包)
- 【解题报告】uva562_Dividing coins(划分硬币, dp, 01背包)
- codevs 1288 埃及分数 迭代加深搜索
- 掌柜大作战(9):京东分布式服务框架JSF的配置和使用,一步步让你成为“技术傻瓜”
- Session 共享解决方案
- Java容易遗忘的知识点列表(持续更新)
- Framework加载资源
- 洛谷 2708 硬币翻转 特判? 解题报告
- 排序---快速排序
- linux中DNS设置和虚拟机管理练习
- linux中文件的归档压缩
- CSS概述
- windows下GitStack服务器TortoiseGit客户端的安装使用
- c和c++中const,指针和引用
- COJ1981-小M的魔术表演
- 引用--引用作参数