Ivan and Powers of Two
题意:
给出n个数a1,a2,...,an.按升序排序,表示2a1,2a2,...,2an,
设一个序列b1,b2,...,bm,使2a1+2a2+...+2an+2b1+2b2+...+2bm=2k-1.求m的最小值(其中k为非负整数).
输入格式:
共两行:
第一行为n.
第二行为n个数,即a1,a2,...,an.
输出格式:
共一行,即m的最小值.
输入样例1:
4
0 1 1 1
输出样例1:
0
输入样例2:
1
3
输出样例2:
3
题解:
首先,将重复的数合并,如两个2,我们可以将其合为一个3;五个3,我们可以将其合为一个3与一个5.
接着,我们可以发现每个ai都只存在一个或零个.故我们可以将其看为一个01串,而我们的最终目标就是将所有的0变为1,故统计01串长度与1的个数,两者做减法即为答案.
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
while(1){
printf("自己打!\n");
}
return 0;
}
绝对不是因为我代码太丑才不放上来的

浙公网安备 33010602011771号