CSP2020试题解法与总结(游记)

Day-1

考试前一天晚,没上竞赛课,教练叫我们在家做题,别说不愧是信心赛题目都海星,做完后就睡觉了不过有一道题数据好像错了

Day0

考前

早上6:00就起床了,可能是想跟着大部队吧,没有直接去考场而是去了学校,一行人都上了车,不过初一是在是太吵了(跟我们初一时一样
上了车跟一旁的yzk一起背了一下模板然后差不多就到了NK。不得不说NK的硬件真的要好亿一些。

考前教练反复跟我们说一定要保存,一定要调整好心态。(不然就是给CCF送钱

考时

拿到第一道题一眼看穿就是从大到小看小于2的几次方,之后再减,打完过完样例就跑了
T1.马蜂清奇

#include<cstdio>

int Pow(int f) {
   
   
  int sum = 2, ans = 1;
  while(f) {
   
   
  	if(f & 1) {
   
   
  		ans *= sum;
  	}
  	sum *= sum;
  	f >>= 1;
  }
  return ans;
}

int main() {
   
   
//	freopen("power.in", "r", stdin);
//	freopen("power.out", "w", stdout);
  int n, sum = 1, tot = 0, cnt = 0, g;
  scanf("%d", &n);
  g = n;
  while(sum < n) {
   
   
  	sum *= 2;
  	tot ++;
  }
  for(int i = tot; i >= 1; i --) {
   
   
  	int s = Pow(i);
  	if(s <= g) {
   
   
  		g -= s;
  	}
  } if(g != 0) {
   
   
  	printf("%d", -1);
  } else {
   
   
  	for(int i = tot; i >= 1; i --) {
   
   
  		int s = Pow(i);
  		if(s <= n) {
   
   
  			n -= s;
  			printf("%d ", s);
  		}
  	} 
  }
  return 0;
}

T2.
考试的时候没有看数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值