CodeForces 398A Cards 贪心 暴力 瞎搞

搞了一晚上了快,各种YY乱搞啊,终于过了,一开始YY的都是错的,觉得 这道题目a,b的范围都是10^5,那就暴力枚举b被分成了几份,然后再继续YY,只用一个o去分隔x,这样最后剩下的o再集中在一起,也就是x的份数总是比o的份数多一份,也就是尽可能把x分开,尽可能把o集中在一块,前面都把x分开了,一个o分开两份x,后面还能有一大堆的o在一起,这样就满足了,然后又出错了,因为分成几份,有余数的,比如b = 6,你要分成4份,我以开始是分成 1  1
 1  3这样子,这样不行,应该分成 1 1 2 2把余数平均冯前面1个,直到分光了位置,主要就是 减少b的存在,其实a的部分很好控制,a的部分 减去前面要去分隔x的,每个分隔只需消耗一个o,剩下的乘一下 加上前面多少个,b就要分两部分计算,一部分是 得到了余数分配的,还有一部分就是 整除所得的值

ll aa,bb;

ll ans ;

string ret;

void init() {

}

bool input() {
	while(cin>>aa>>bb) {
		return false;
	}
	return true;
}

void cal() {
	ll mark;
	ans = 0ll;
	ret = "";
	if(aa == 0) {
		ans = -bb * bb;
		ll q = bb;
		while(q--)ret += "x";
		return ;
	}
	if(bb == 0) {
		ans = aa * aa;
		ll q = aa;
		while(q--)ret += "o";
		return ;
	}
	ans = -INF;
	for(ll i=2;i<=aa + 1;i++) {
		ll now = (aa - i + 2) * (aa - i + 2) + i - 2;
		ll tmp = bb/i;
		ll tt = bb - tmp * i;
		now -= tt * (tmp + 1ll) * (tmp + 1ll) + (i - tt) * tmp * tmp;
		if(now > ans) {
			ans = now;
			mark = i;
		}
	}
	ll tmp = bb/mark;
	ll tt = bb - tmp * mark;
	bool flag = false;
	ll cnt = 0;
	for(ll i=1;i<mark;i++) {
		if(flag)ret += "o";
		if(cnt < tt) {ret += "x";cnt++;}
		for(ll j=0;j<tmp;j++)ret += "x";
		flag = true;
	}
	for(ll i=0;i<(aa - mark + 2);i++)ret += "o";
	for(ll i=0;i<tmp;i++)ret += "x";
}

void output() {
	cout<<ans<<endl;
	cout<<ret<<endl;
}

int main() {
	while(true) {
		init();
		if(input())return 0;
		cal();
		output();
	}
	return 0;
}
时间: 2024-10-13 01:06:06

CodeForces 398A Cards 贪心 暴力 瞎搞的相关文章

CodeForces - 1265D(贪心+暴力)

题意 https://vjudge.net/problem/CodeForces-1265D a个0,b个1,c个2,d个3,问是否存在一种排列方案使得任意相邻两数之差==1 思路 分类讨论太麻烦了,直接暴力搞! 枚举0123每个数作为第一个数,然后优先看这个数-1还有没有,有的话就放进去,没有就看这个数+1,如果两个都没有了,那就break,最后判断0123的数量是否都为0即可. 为什么要先放x-1?这是一种贪心的思路,放了x+1的话那么x-1在后面可能就放不了了,所以优先放x-1. 代码 #

HDU 5128 The E-pang Palace(暴力瞎搞)

题目大意:给你n个点,让你组成矩形,然后如果有两个矩形不相交的话就计算他们的面积,求最大的两个矩形的面积并.注意的是回字型的嵌套,面积的并是最大的矩形的面积. 解题思路:暴力,枚举出来矩形,然后再暴力枚举两个矩形判断是否相交,是否为回字型. The E-pang Palace Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others) Total Submission(s): 288 

Codeforces 433C. Ryouko&#39;s Memory Note (中位数,瞎搞,思维)

题目链接: http://codeforces.com/problemset/problem/433/C 题意: 给你一堆数字,允许你修改相同的数字成为别的数字,也可以修改成自己,问你修改后相邻数字的距离的绝对值的和最小是多少. 思路: 首先明确一个结论,一个数轴上一些点,要求一个与他们距离之和尽量小的点,那么这个点就是这些点的中位数,即排序后位于中间的数. 这题的思路是把每一个数的与之相邻的保存下来,为了方便,可以用vector数组.然后为了使得距离之和最短,要取中位数.在一串数字中,距所有数

HDU 5024 Wang Xifeng&#39;s Little Plot(暴力枚举+瞎搞)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5024 Problem Description <Dream of the Red Chamber>(also <The Story of the Stone>) is one of the Four Great Classical Novels of Chinese literature, and it is commonly regarded as the best one. Thi

Codeforces Gym 100610 Problem H. Horrible Truth 瞎搞

Problem H. Horrible Truth Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100610 Description In a Famous TV Show “Find Out” there are n characters and only one Horrible Truth. To make the series breathtaking all way long, the sc

CF1156E Special Segments of Permutation【题解】瞎搞 单调栈

题面:http://codeforces.com/contest/1156/problem/E Luogu翻译:https://www.luogu.com.cn/problem/CF1156E 话说Luogu要改域名了. 大意:给定一个长度为n的排列p,求有多少区间[l,r]满足,p[l]+p[r]=max{p[i]},其中l<=i<=r 据说可以笛卡尔树. 可是我不会. 那么就瞎搞. 预处理出左边第一个比a[i]大的数的位置,记为L[i] R[i]同理为右边. 这个可以用单调栈求. 然后就可

HDU 4937 (杭电多校 #7 1003题)Lucky Number(瞎搞)

题目地址:HDU 4937 多校的题以后得重视起来...每道题都错好多次...很考察细节.比如这道....WA了无数次.... 这题的思路自己真心想不到...这题是将进制后的数分别是1位,2位,3位和更多位的分开来计算. 当是1位的时候,显然只有3到6,此时只能是-1 当是2位的时候,可以转换成一元一次方程求解 当是3位的时候,可以转换成一元二次方程求解 当是4位的时候,此时最多也只有7000个数,7000^3接近1e12.所以剩下的直接枚举进制数来判断即可. 代码如下: #include <i

HDU 4923 Room and Moor(瞎搞题)

瞎搞题啊.找出1 1 0 0这种序列,然后存起来,这种情况下最好的选择是1的个数除以这段的总和.然后从前向后扫一遍,变扫边进行合并.每次合并,合并的是他的前驱.这样到最后从t-1找出的那条链就是最后满足条件的数的大小. Room and Moor Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 307    Accepted Su

HDU 4925 Apple Tree (瞎搞)

找到规律,各一个种一棵树,或者施肥.先施肥,先种树一样. Apple Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 197    Accepted Submission(s): 135 Problem Description I've bought an orchard and decide to plant some