CSP-J模拟赛1—总结
CSP-J模拟赛1—总结
2025.10.1
个人感受
这次做题情况还是很不理想的,只有
T1 我的问题就是在思考的时候想到了超过
T2 的问题就是没有想到预处理,同时我的变量该赋值为
T3 考的是绝对值得运用,正如我开始所说,我没有在纸上面思考,没有画图,所以没有找出最优方法,而是直接暴力去枚举的。
T4 在考的时候没有什么思路,能感觉出来是要用 dp 来做,但是没有深入去思考,也就没有找到问题的方法。我这道题尝试过用贪心来做,但是错了,所以到后面就没再思考了,去继续想前面的题了。
T1 isolate 隔离
题意:
办公时间超过
思路:
考试的时候思路有点混乱,所以重复做了一些无意义的事。
正解:
在便利
如果小于
Code:
while(n){
int a;cin>>a;
if(a>=240) b=1;
s1+=a; //全加上
p+=a;
if(p>=240){ //多了
s2=s2+p+400-a;
p=a;
}
n--;
}
if(b==1){
cout<<s1;
return 0;
}
T2 sump 和积
题意:
求在
思路:
先预处理一下,把所有数字的和与积都用数组存起来,在循环里面直接用就好了。
和与积的规律:
-
sum[x] = sum[x \div 10] + (x \bmod 10) -
cmp[x] = cmp[x \div 10] \times (x \bmod 10)
Code:
for(int i=1; i<=9; i++) {
sum[i]=i;
cmp[i]=i;
}
for(int i=10; i<=AW-10; i++) {
sum[i]=sum[i/10]+i%10;
cmp[i]=cmp[i/10]*(i%10);
}
for(int i=M; i<=N; i++) {
if(sum[i]==k) {
if(cmp[i]>ans2) {
ans2=cmp[i];
ans1=i;
}
}
}
T3 lift 电梯停靠
题意:
有
思路:
先把
证明:
首先看到绝对值这个词就应该想到数轴,我们把这些
(此图例子:
由初一学过的知识来看,当点的个数为偶数个时,
而通过这张图片可以看出,
Code:
for(int i=1;i<=m;i++){
cin>>a[i]>>a[m+i];
b[i]=a[i];
c[i]=a[m+i];
}
sort(a+1,a+2*m+1);
int s=a[m];
T4 select 分组选数
代码还没有调出来。