【补解体报告】topcoder 634 DIV 2

A:应该是道语文题,注意边界就好;

B:开始考虑的太复杂,没能够完全提取题目的思维。

但还是A了!我愚蠢的做法:二分答案加暴力枚举,

枚举的时候是完全模拟的,比如每次取得时候都是从大到小的去取,最后统计答案!

好吧!忽略这种SB做法,只是提供一种当你想不到的时候,一种暴力破解的思路!

看到的一种正解:我们每次可以取(N-1)个,而且不用加入答案中,

先上代码:

for (int i=0;i<s.size();i++)

sum+=s[i];

return max(0,sum-N*(m-1));很简短。

C 题:

构造题,想想也没想法,暴力是很好用的。

http://blog.csdn.net/codebattle/article/details/39612609  思路来源!

我们可以从后往前进行枚举当且遇到‘0’时进行修改,

然后去枚举该位置之后的数,每次假设当它为’0‘时,看是否满足。

复杂度大概是O(N^3);

具体看前面大神博客的代码

时间: 2024-08-29 19:59:19

【补解体报告】topcoder 634 DIV 2的相关文章

TopCoder SRM 634 Div.2[ABC]

TopCoder SRM 634 Div.2[ABC] ACM 题目地址: TopCoder SRM 634 赛后做的,感觉现场肯定做不出来Orz,简直不能多说. Level One-MountainRanges[水题] 题意: 问序列中有几个完全大于旁边的峰. 分析: 傻逼题,不多说. 代码: /* * Author: illuz <iilluzen[at]gmail.com> * File: one.cpp * Create Date: 2014-09-26 21:01:23 * Desc

Codeforces Round #634 (Div. 3) 补题

A. Candies and Two Sisters 签到题,直接输出即可 代码 #include<bits/stdc++.h> #define INF 0x3f3f3f3f typedef long long ll; using namespace std; inline void read(int &p) { p=0;int flag=1;char c=getchar(); while(!isdigit(c)) {if(c=='-') flag=-1;c=getchar();} w

Topcoder Srm627 DIV 2

A,B:很水,注意边界,话说HACK都是这些原因. C: R[I][J]:表示反转I-J能改变冒泡排序的次数: DP方程:dp[i][k]=max(dp[j][k],dp[j][k-1]+dp[j][i])  (0<=j<i) 最后枚举,具体看代码 #include<stdio.h> #include<iostream> #include<vector> #include<algorithm> #include<cmath> #inc

2020-3-14 acm训练联盟周赛Preliminaries for Benelux Algorithm Programming Contest 2019 解题报告+补题报告

2020-3-15比赛解题报告+2020-3-8—2020-3-15的补题报告 2020-3-15比赛题解 训练联盟周赛Preliminaries for Benelux Algorithm Programming Contest 2019  A建筑(模拟) 耗时:3ms 244KB 建筑 你哥哥在最近的建筑问题突破大会上获得了一个奖项 并获得了千载难逢的重新设计城市中心的机会 他最喜欢的城市奈梅根.由于城市布局中最引人注目的部分是天际线, 你的兄弟已经开始为他想要北方和东方的天际线画一些想法

20190303集训队选拔赛1补题报告

今天嘛,打得很糟糕,糟糕到什么程度呢,rank40 一共才55个人,我写了2题,总共尝试了5题,总共8题 写了3题及以上的有27个,剩下的都是2道和1道 小西瓜啊!!! 外因就不找了(其实也没有) 但是我知道有个原因非常重要:刷题量太少了 其他的不说了,再接再厉吧,刚才已经消沉了很久了,也放空了一会,所以开始补题吧 对了,集训队讲座补选上了(因为有的同学觉得太难退课了,感谢颜学长的劝退讲座,让我有机会一边修学分一边被虐) 这也意味着我要有一篇总结报告和三篇解题报告 解题报告要正儿八经地写 不能像

Codeforces Round #634 (Div. 3)

题意:将n分成a,b.保证a>b,问有几种分法 解析:偶数输出n/2-1,奇数n/2即可 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<set> using namespace std; typedef long long ll; int main() { int t; cin>>t; while(t--) {

蚯蚓——在做了一个星期的水题之后,又和这个题目耗了一会(其实好像奶牛和连棋也是水题,只是上上个星期不想写解体报告)

NOIP2017 Day2 第二题.先写了一两个中午思路混乱的版本,后来理清楚了做法重新打了一遍,却因为没有发现cmp 写反而又多花了几天时间. 最终如下. 1 #include<queue> 2 #include<cstdio> 3 #include<iostream> 4 #include<algorithm> 5 using namespace std; 6 const int N=7166666; 7 int n,m,q,u,v,t; 8 int q

TopCoder[SRM513 div 1]:(500)

Problem Statement      You might have played the game called Memoria. In this game, there is a board consisting of N rows containing M cells each. Each of the cells has a symbol on its back. Each symbol occurs on exactly two cells on the board. A mov

2020年3月14日 BAPC2019 比赛补题报告

Inquiry I 题意: 给定一个数列, 求公式的最大值 思路: 可以维护一个前缀和 与 后缀和, 扫描一次数组, 即可求出最大值 代码: n = int(input()) lst = [*map(int, input().split())] # left 记录数组元素平方的前缀和, right 记录数组元素后缀和 left, right = 0, sum(lst) res = 0 for i in lst: left += i**2 right -= i res = max(res, lef