CSP-J模拟赛二补题报告

本文是作者S00338参加CSP-J模拟赛的题解报告,详细解析了四道题目:人员借调transfer、计算calc、智能公交transit和异或和exclusive。在人员借调问题中,作者采用了贪心算法,但在计算calc题目上因暴力求解而失分。智能公交问题通过二分查找得到解决方案,异或和问题则未能找到正确解答。
摘要由CSDN通过智能技术生成

日期:2023-10-1周六

学号:S00338

目录

简述

比赛过程

题目分析

【人员借调transfer】

1、题目大意

2、比赛中的思考

3、解题思路

4、AC code:(主体部分)

【计算calc】

1、题目大意

2、比赛中的思考

3、解题思路

4、AC code:(主体)

【智能公交transit】

1、题目大意

2、比赛中的思考

3、解题思路

4、AC code:(我用的二分)

【异或和exclusive】

1、题目大意

2、比赛中的思考

3、解题思路

4、AC code:(主体)


  • 简述

总分数:190

T1【人员借调transfer】70

T2【计算calc】20

T3【智能公交transit】100

T4【异或和exclusive】0

  • 比赛过程

这次我还是按顺序做的。

T1在草稿纸上模拟了一下样例。慢慢打了一个贪心,没想到啊,少想了一种一直在B的情况,导致丢了30。

T2没有想到打表的办法(看来还我见识太少了QwQ),于是打了暴力,结果多组输入ans忘了清空,直接G掉了,只拿到了特殊点判断(n==m)的20分,痛失30pts。

T3我一开始没想到前缀和与差分的做法,我感觉选择不同的位置的站台经过数是单调有规律可循的,画了画区间示意图,感觉不像有单调性。然后输出样例中选不同位置的答案找了找,发现这堆数居然可以找到规律!然后利用单调性手写了一个二分,改了改死循环的错,居然过了所有样例!然后我也没想到这是我唯一一个A掉的题目。

T4题目越短,事情越大。我对于不同的数据分别打了暴力,结果暴力炸掉了,我也不太清楚为啥。可能因为没有考虑到m。而且正解是人能想出的思路?(

反正这次没有能直接过的题

  • 题目分析

【人员借调transfer】

1、题目大意

小可在AB两地往返,要去B地按顺序处理n件事,小可处理第 i 件要 ai min,但是当小可在B地连续待大于等于240min时,小可回来后必须在 A 地滞留10080 min ,然后才能继续活动。

现在他准备从 A 地出发,需要在 B 地处理完所有事,然后回到 A 地正常的工作。

求小可至少需要多少分钟

2、比赛中的思考

一开始,我仔细读了读题,然后在纸上稍稍推了推,然后直接贪心

结果少考虑了一种小可一直待在B点的情况。不过话说A地是什么病娇老板啊(

3、解题思路

利用贪心。如果>=240就回A地,如果<240分两种情况讨论,一个是sum<240,一个是sum>240

4、AC code:(主体部分)

const int N=1e4+10;
int n,a[N],ans;
int main(){
	//freopen("transfer.in","r",stdin);
	//freopen("transfer.out","w",stdout);
	
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	int sum=0;
	for(int i=1;i<=n;i++){
		if(a[i]>=240){
			ans+=10480+a[i];
			if(sum){
				ans+=sum;
				sum=0;
			} 
		}
		els
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值