这次最大的感受就是:CSP对新手更不友好了
从CSP-J T1 就可以看出比以往难度大了非常多,考的其他内容也变难了。而且提高组更是难上加难。我应该只有50分不到了(我太垃圾了)
题目:
CSP-J T1:
给出一个数(n<=1e7),求它被分解成不相同的2的正整数次幂的和的结果
这道题相比以往难度很大,但是仔细一想还挺简单的。
易证出奇数不能分解,所有偶数都行。
所以先处理出2的幂,再每次找到小于n的最大的幂,输出并将n减去它。
//mi:存2的幂(预处理)
int find(n){
for(int i=1 to ...){
if(mi[i]<=n && mi[i]+1>=n) return mi[i];
}
}
//main函数中的循环
while(n){
int a=find(n);
n-=a;
cout<<a<<" ";
}
T2:
我的做法:像冒泡排序一样每次加进来一个数就往前调,维护有序性。
插入复杂度O(n),查询复杂度O(1),估分70。
正解好像是桶排序?
T3:
处理完数据后暴力用栈计算就好了30分了
T4:
dfs暴力就很好,反正不会做
三个方向的方格取数,我 又双叒叕 没时间了,只好拿几分走了
总结:
废物的人生不需要解释