思路

花了半天去理解题意……意思是说给你一个选手的滚球情况,打出他当前的成绩。简单的说这题就是一个模拟(我才不是因为懒才找模拟题写的)思路也很简单,对每一轮进行以下几个判断就行啦:

  1. 首先判断有没有在两次滚球之内把 101010 个柱子滚完(判断有没有/)。
  2. 如果滚完了(有/),在下一轮或下下轮找可以加的得分(如果 333 次滚球机会没用完,就不能输出得分)。
  3. 如果没有滚完(没有/),判断当前轮有没有滚两次球(字符串长度是否为 222),没有的话同样不能输出成绩。

思路还是很清晰的,下面放上代码:

#include <iostream>
#include <algorithm>
using namespace std;
int ans[15];//记录本轮得分的数组
int ans1[15];//前缀和数组
int flag[15];//标识能否输出答案
string s[15];
int serch(int i){
for(int j=0;j<s[i].size();j++)
{
if(s[i][j]=='/')
return j+1;
}
return 0;
}//判断是否存在'/'
int getnum(int i,int len){
int ans=0;
int k=s[i].size();
for(int j=0;j<min(k,len);j++){//防越界
if(s[i][j]=='/')
ans=10;
else
ans+=(s[i][j]-'0');
}
return ans;
}
int main(){
int len=0;
while(cin>>s[len++]);
for(int i=0;i<10;i++){
int k=3;
if(s[i]=="")
break;
if(serch(i)){
ans[i]+=10;
k-=s[i].size();
if(k>0){
ans[i]+=getnum(i+1,k);
k-=s[i+1].size();
}//加上下次可以得到的分
if(k>0){
ans[i]+=getnum(i+2,k);
k-=s[i+2].size();
}//加上下下次可以得到的分
if(k<=0)flag[i]=1;//可以输出的分
}
else{
ans[i]=getnum(i,s[i].size());
if(s[i].size()==2)
flag[i]=1;
}
}
for(int i=0;i<10;i++){
if(flag[i])
cout<<ans[i]<<" ";
}
cout<<endl;
ans1[0]=ans[0];
for(int i=1;i<10;i++)ans1[i]=ans1[i-1]+ans[i];
for(int i=0;i<10;i++){
if(flag[i])
cout<<ans1[i]<<" ";
}
return 0;//完结撒花!!!
}

P1166题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. react 爷爷组件件传递给孙子组件

    爷爷组件 import React, { Component } from "react"; import "./App.css"; import TestHa ...

  2. 天翼云完成首个国产化万卡训练,MFU达到国内领先水平!

    天翼云自研国内首个单集群万卡国产化全功能预训练云服务平台发布上线,并完成万卡规模Llama3.1-405B大模型训练.Llama3.1-405B作为4000亿参数的模型,在息壤训推服务平台的支持下经过 ...

  3. HPC的基本概念

    本文分享自天翼云开发者社区<HPC的基本概念>,作者:它零食抱佛jio HPC(High Performance Computing)是一种高性能计算技术,它利用大规模并行处理器集群或超级 ...

  4. 阿里的DataV和QuickBi区别

    首先说下DataV吧 分为老版和新版(二者之间没有什么太大的差别,存在的基本都是组件上的配置或是更多不同组件的新增,但是如果你是在项目上进行开发,你首先要知道客户用的DataV用的是什么版本,如果你们 ...

  5. Shell - 集群监控脚本合集

    node_heart_check.sh #!/bin/bash scriptPath=$(dirname "$0") for ip in `cat /etc/hosts | gre ...

  6. DOS批处理小案例应用分享 - 整理桌面

    想必大多数办公的同志都有个习惯----往桌面上堆放文件,各种文件.几天下来桌面就杂乱无章,乱七八糟的.能做一个快速清理的功能,是很有实用价值的.比如采用Windows自带的DOS批处理系统,就可快速搭 ...

  7. VMware虚拟机上安装CentOS8详细教程

    1.准备工作 1.1.需要准备好已安装完成的VMware虚拟机,如果您的电脑未安装VMware虚拟机,请参考以下连接:https://www.cnblogs.com/x1234567890/p/148 ...

  8. 原生开发,使用C语言调用Windows API 开发软件思路分享

    Githu: https://github.com/vladelaina/Catime 作者是一个高度依赖计时器功能的人,但是市面上的软件都不能满足个性化的需求,所以打算自己动手开发,同时采用c语言来 ...

  9. pandas 删除指定条件的行

    inplace=True:不创建新的对象,直接对原始对象进行修改: inplace=False:对数据进行修改,创建并返回新的对象承载其修改结果. 删除工作日餐补为0的记录 row_index=df[ ...

  10. AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类

    引言 人工智能(AI)技术的迅猛发展推动了各行各业的数字化转型.图像分类,作为计算机视觉领域的核心技术之一,能够让机器自动识别图像中的物体.场景或特征,已广泛应用于医疗诊断.安防监控.自动驾驶和电子商 ...