TC SRM 548 DIV2

来源:互联网 发布:59网络语言是什么梗 编辑:程序博客网 时间:2024/05/16 12:19

转载请注明出处,谢谢 http://blog.csdn.net/ACM_cxlove?viewmode=contents           by---cxlove


大好的涨rate机会,又被浪费了。

250PT:有多少个不同的数*某个数的最多个数,结果把变量名写错了

class KingdomAndDucks{public:int minDucks(vector <int> duckTypes){int cnt[51],ans=0,tmp=1;memset(cnt,0,sizeof(cnt));for(int i=0;i<duckTypes.size();i++)if(cnt[duckTypes[i]]==0){ans++;cnt[duckTypes[i]]++;}else{cnt[duckTypes[i]]++;tmp=max(tmp,cnt[duckTypes[i]]);}return ans*tmp;}};


500PT:有一个数列,每个数可以加上或者减去X以内的数,使数列变成严格递增的数列,最小的X。

二分,然后判断是否满足答案,遍历一次,每次使每个数尽可能的小,判断是否满足严格递增。

class KingdomAndTrees{public:int minLevel(vector <int> heights){int low=0,high=1000000005,mid,h;while(low<=high){mid=(low+high)/2;bool flag=true;for(int i=0;i<heights.size();i++)if(i==0)h=max(1,heights[0]-mid);else{if(heights[i]+mid<=h){flag=false;break;}h=max(heights[i]-mid,h+1);}if(flag)high=mid-1;elselow=mid+1;}return low;}};


1000PT:怒撸搜索,加了各种剪枝,结果还是没过,据说是背包?有待研究

原创粉丝点击