2023年CSP-J复赛 (前两题)

2 篇文章 0 订阅
1 篇文章 0 订阅

个人代码,仅供参考

小苹果

 模拟。 n个苹果   (1) 每次可以拿 (n-1)/3+1 个
                (2) 当满足 n%3=1 时,最后一个苹果可以拿到
      注意 : 在满足第二个条件时,要取第一次满足条件时的天数,
            因为后面尽管能拿到最后一个,但不是编号为n的
#include<bits/stdc++.h>
using namespace std;
int main(){                          
	int n,day=0,ans,f=1;
	cin>>n;// 苹果数 
	while(n){	
		day++;
		if(f&&n%3==1){
			ans=day;
			f=0;// 修改f值 
		}
		n-=((n-1)/3+1);
	}
	cout<<day<<" "<<ans;
	
	return 0;
} 

公路

      模拟。 油价越低越好。不断寻找油价更低的站点。
            注意油可以剩余,可以保存油箱剩余可以行驶的距离数来简化运算
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxx=100009;
ll v,a[maxx],sum[maxx];
ll ans;
int main() {
	// freopen("input.txt","r",stdin);
	int n,d;
	cin>>n>>d;
	for(int i=2; i<=n; i++) {
		cin>>v;     // sum[i] : 到达i站点时的距离
		sum[i]=sum[i-1]+v; // 前缀和 
	}
	for(int i=1; i<=n; i++)
		cin>>a[i];  // 油价

	int pos=1;
	ll f=0;   // f:总加油量
	for(int i=2; i<=n; i++) {
		if(a[i]<a[pos]||i==n) {
			ans+=(sum[i]-f*d+d-1)/d*a[pos];// 仍需补充的油量 
			//  由于只能出售整数升,加 d-1向上取整
			//  sum[i]-f*d  油箱剩的油还能跑的距离 
			f+=(sum[i]-f*d+d-1)/d;
			pos=i;
		}
	}
	cout<<ans<<endl;
	return 0;
}
CSP-J复赛试题pdf是指CSP-J的复赛试题的PDF文件。CSP-J是中国计算机学会(CCF)主办的一项高中生计算机科学与编程的竞赛。复赛CSP-J竞赛的第二个阶段,参赛者需要通过初赛选拔才能进入复赛CSP-J复赛试题pdf中包含了以往CSP-J复赛的试题和答案。这些试题主要涵盖了计算机科学与编程的各个方面,包括编程语言、算法数据结构、计算机网络等。参赛者可以通过研究历试题,了解CSP-J竞赛的题型和出题风格,提高自己的解题能力和编程水平。 CSP-J复赛试题pdf对于参赛者来说具有很大的参考价值。通过研究这些试题,参赛者可以了解到高水平的计算机科学与编程问题是如何被设计和解决的。同时,参赛者还可以通过尝试解答这些试题,检验自己的知识和技能,发现自己的不足之处并进行改进。 此外,CSP-J复赛试题pdf还对教师和学生进行教学和学习有很大的帮助。教师可以利用这些试题作为教学资源,丰富教学内容和方法,提高学生的计算机科学与编程能力。学生可以通过研究这些试题,扩展知识面,提升解决问题和编程的能力。 总之,CSP-J复赛试题pdf是一份重要的学习和竞赛资料,对参赛者、教师和学生都具有很大的参考和帮助作用。通过研究这些试题,大家可以更好地了解计算机科学与编程的相关知识和技能,并提升自己的竞赛和学习能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值