51分求救!
查看原帖
51分求救!
983021
xingyu671楼主2024/5/23 21:21
// Problem: P1166 打保龄球
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P1166
// Memory Limit: 125 MB
// Time Limit: 1000 ms
// 日期-时间: 2024-05-23 20:41
// 


/*
总时长:  分
题目要点分析:

样例模拟解决思路分析:



用过的方法思路:

正确最优解法:

时间复杂度:
空间复杂度:
#算法/图论/最短路
#统计/修改次数/<10,10~30,>30
#统计/测试次数/<5,5~10,>10
#统计/提交次数/<3,3~8,>8

#错误/数据/变量,下标,类型,范围
#错误/条件/边界判断,场景情形
#错误/熟练/代码模板,库函数
#错误/分析/题意理解,遗漏要点,模拟样例,题解验算
#错误/调试/代码验算,对拍,打印分析
错误分析总结:

*/

#include<bits/stdc++.h>
using namespace std;
int a[25],id[15],ans[15],cnt;
int main()
{
	string ttt;
	int w = 1;
	while(cin >> ttt)
	{
		id[w] = cnt+1;
		for(int i = 0;i < ttt.size();i++)
		{
			if(ttt[i] != '/') a[++cnt] = ttt[i]-'0';
			else
			{
				if(ttt.size() == 1) a[++cnt] = 10;
				else a[++cnt] = 10-(ttt[i-1]-'0');
			}//将'/'转换成数字
		}//处理此轮滚球情况
		w++;
	}//输入
	for(int i = 1;i <= 10;i++)
	{
		int t = 0,at = id[i];
		t += a[at]+a[at+1];
		if(t >= 10) t += a[at+2];
		//如果本轮两次击倒保龄球瓶数不足10个,就不加后面的分
		ans[i] = ans[i-1]+t;
		cout << t << ' ';
	}//统计每轮得分
	cout << endl;
	for(int i = 1;i <= 10;i++) cout << ans[i] << ' ';
    return 0;
}

评测链接

2024/5/23 21:21
加载中...