2022CUST程序设计天梯赛校赛L1题解

本文介绍了2022年CUST程序设计天梯赛校赛L1级别的题目,包括签到题、基础博弈问题、差分问题、字符串处理、简单游戏逻辑、卷积神经网络理解、数据排序以及滑雪行程模拟等,每个题目都给出了ac代码和解题思路。

L1-1 共抗疫情,长理加油!

签到题,直接输出即可。(代码就不想了,绝对不是因为博主懒)

L1-2 stone (5 分)

有 n(n为奇数) 个石子,摆成一排,Alice 和 Bob 轮流取石子,每次每个人不能取与上个人取的石子相邻的石子,不能取的人输。假设 Alice 和 Bob 都绝顶聪明,Alice 先手取。

问是 Alice 赢还是 Bob 赢。

基础博弈,n为奇数,先手必赢。输出先手的即可。

L1-3 志愿者Lucky (10 分)

羊驼学院突发疫情,寝室各自封寝,寝室楼长度为l m,每个寝室间距为1 m,即1,2,3...,l各有一个寝室,乐于帮助其他羊驼的羊驼Lucky申请当志愿者,每天负责给所有寝室采购并配送物资,有n种物资需求,具体细节详见输入描述。由于每个寝室需求不同,Lucky每天统计好所有需要的物资后统一发送,Lucky想知道每天给多少寝室配送过物资。

经典差分例题,每次起始寝室和结束寝室进行标记即可。

ac代码如下

#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
#define ll long long
const int N=1e6+10;
ll a[N]={0},b[N]={0};
int main()
{
	ll n,l;cin>>n>>l;
	memset(a,0,sizeof(a));
	memset(a,0,sizeof(b));
	for(int i=0;i<n;i++)
	{
		ll x,y;cin>>x>>y;
		a[x]++;b[y]--;
	}
	ll ans=0,num=0;
	for(int i=1;i<=l;i++)
	{
		num+=a[i]+b[i];
		
		if(num>0||b[i]!=0||a[i]!=0)
		    ans++;
	}
	cout<<ans<<endl;
}

L1-4 物品价格 (10 分)

为了准备ACPC(Alpaca Collegiate Programming Contest)的线上赛,羊驼 Lucky 的学弟们去超市买了一些零食以及水,并且和超市要了购物小票以回去找 Lucky 报销,但因为学弟们运输的过程中,手段实在过为暴力,把小票的购物总额部分给撕坏了,并且不知道丢到了哪里。

羊驼 Lucky 看了之后十分头疼,他想请你做一个程序,来帮它计算一下他需要给学弟们付多少钱。

购物清单的格式为:每行一个商品,形如"商品名称:商品价格"(保证商品名称中出现的字符 ∈{[a,z],[′0′,′9′],′:′,′∗′, ′,′;′,},商品价格为整数)。

  • little dragon chips:4
  • dragon god bread:10
  • small bottle coke*13:32

因为羊驼的学弟有时候比较懒,为了自己省力气买水的时候经常买小瓶款,但大家都不喜欢小瓶款,所以,Lucky 决定,如果购物清单中,商品名称中有,"small bottle"的话,这款商品的费用就不给学弟报销。

保证答案在long long范围内

考察字符串的输入,子串的查找以及字符串内数字转化为整形。</

以下是一个简单的Java代码示例,演示了如何创建一个Cust类,实现基本的账户管理功能: ``` public class Cust { private String username; private String password; private double balance; public Cust(String username, String password, double balance) { this.username = username; this.password = password; this.balance = balance; } public boolean login(String username, String password) { if (this.username.equals(username) && this.password.equals(password)) { System.out.println("登录成功!"); return true; } else { System.out.println("用户名或密码错误!"); return false; } } public void deposit(double amount) { balance += amount; System.out.println("存款成功!当前余额:" + balance); } public void withdraw(double amount) { if (balance < amount) { System.out.println("余额不足,取款失败!"); } else { balance -= amount; System.out.println("取款成功!当前余额:" + balance); } } public void checkBalance() { System.out.println("当前余额:" + balance); } } ``` 在这个示例中,Cust类包含三个私有变量(用户名、密码和余额),以及一个构造函数和四个公共方法。构造函数用于初始化对象的三个变量,而公共方法包括login方法(用于登录账户)、deposit方法(用于存款)、withdraw方法(用于取款)和checkBalance方法(用于查询余额)。 要使用这个Cust类,可以按照以下步骤进行操作: 1. 创建一个Cust对象,通过构造函数传递用户名、密码和初始余额。 ``` Cust customer = new Cust("myUsername", "myPassword", 1000.0); ``` 2. 使用login方法登录账户。 ``` customer.login("myUsername", "myPassword"); ``` 3. 调用deposit方法存款。 ``` customer.deposit(500.0); ``` 4. 调用withdraw方法取款。 ``` customer.withdraw(200.0); ``` 5. 调用checkBalance方法查询余额。 ``` customer.checkBalance(); ``` 这个示例只是一个简单的演示,实际情况下还需要考虑很多因素,例如安全性、错误处理、并发等。但是,这个示例可以帮助您了解如何使用Java创建一个基本的账户管理程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值