首页 > 其他分享 >《看了受制了》第三十四天,5道题,合计187道题

《看了受制了》第三十四天,5道题,合计187道题

时间:2023-10-04 22:34:12浏览次数:39  
标签:比值 道题 题目 int void 第三十四 solve vec 187

2023年10月4日

牛客国庆消消乐Day6 C Combination of Physics and Maths

题目大意

得到所有子矩阵的最大的可能。计算的方法是所有的和,再比上所选的值的最后一行的和。

题目理解

我们可以强行找到规律,比值大的加比值小的只会让比值减小,比值相同的加和比值不变。那么就可知道是单列的比值最大值为答案。并且答案可以是不完全的列,那么进行暴力枚举即可。

代码实现

ll n, m;
double a[N][N];
void solve()
{
    memset(a, 0, sizeof a);

	scanf("%lld%lld", &n, &m);

	for(int i = 1; i <= n; i++)
		for(int j = 1; j <= m; j++)
			scanf("%lf", &a[i][j]);
    
    double res = 1;
	for(int i = 1; i <= m; i++)
	{
		double sum = 0;
		for(int j = 1; j <= n; j++)
		{
			sum += a[j][i];
			res = max(res, sum / a[j][i]);
		}
	}

	printf("%.9lf\n",res);
	return;
}

牛客七天消消乐Day6 Easy Construction

题目大意

找到一个1~n的排序序列,可以使得,存在i长度的连续子序列的和模nk

题目理解

可以花时间推出如下规律:

  • n为偶数时候,k必须要为n / 2
  • n为奇数的时候,k必须要为0

利用上述规律,可以判断是否可以形成序列。
形成序列后:

  • 奇数,我们就输出n后每次输出两个数,和为n的即可
  • 偶数,我们就输出nn / 2,然后每次输出两个数和为n

代码实现

const int N = 5010;
int a[N];

void solve()
{
	int n, k;
	cin >> n >> k;

	if(n % 2 == 1 && k == 0)
	{
		cout << n << " ";

		for(int i = 1, j = 1; i <= (n - 1) / 2; i++, j++)
			cout << j << " " << n - j << " ";
	}
	else if(n % 2 == 0 && k == n / 2)
	{
		cout << n << " " << n / 2 << " ";

		for(int i = 1, j = 1; i <= (n - 2) / 2; i++, j++)
			cout << j << " " << n - j << " ";
	}else cout << -1;

	return;
}

Div.3 Round881 A Sasha and Array Coloring

题目大意

可以给任意的数字图颜色,相同颜色的数字的权值是颜色最大值减去颜色最小值。问最后的权值最大是多少

题目理解

只图一个必然是0,那么我们只需要排个序,两两一组。然后加大的,减小的就行了。

代码实现

void solve()
{

	int n;
	cin >> n;
	vector<int> vec;
	for(int i = 1; i <= n; i++)
	{
		int b;
		cin >> b;
		vec.push_back(b);
	}

	sort(vec.begin(), vec.end());
	int res = 0;
	for(int i = 0, j = vec.size() - 1; i <= j; i++, j--)
		res += vec[j] - vec[i];

	cout << res << endl;
	return;
}

Div.3 Round881 B Long Long

题目大意

可以把长度为lr的序列乘-1,问最后想让数列的和最大需要操作多少次。

题目理解

就是求,连续的非正数的段数,有多少段。然后所有数求和即可(负数要乘-1

代码实现

void solve()
{
	ll sum = 0, res = 0;
	int n;
	cin >> n;
	vector<ll> vec;
	for(int i = 1; i <= n; i++)
	{
		int b;
		cin >> b;
		if(b <= 0) sum += -b;
		else sum += b;
		vec.push_back(b);
	}

	bool flag = false;
	for(int i = 0; i < (int)vec.size(); i++)
	{
		if(vec[i] < 0 && flag == false)
		{
			flag = true;
			res++;
		}else if(vec[i] > 0 && flag == true)
		{
			flag = false;
		}
	}
	cout << sum << " " << res << endl;
	return;
}

Div.3 Round881 C Sum in Binary Tree

题目大意

满二叉树,问你n的路径和。

题目理解

因为是满二叉树,那么就求和,每次 /=2即可。

代码实现

void solve()
{

	ll res = 0;
	ll n;
	cin >> n;
	while(n)
	{
		res += n;
		n /= 2;
	}

	cout << res << endl; 

	return;
}

标签:比值,道题,题目,int,void,第三十四,solve,vec,187
From: https://www.cnblogs.com/wxzcch/p/17742849.html

相关文章

  • CF1873(Div. 4) 题解 (A to E)
    AShortSort题解题目大意给定一个长度为\(3\)、由\(a,b,c\)组成的字符串,问可以不变或交换两个字符是的变为\(\texttt{abc}\)。解题思路由于大小固定,所以预处理可行的字符串(仅包含\(\texttt{abcacbbaccba}\))即可。代码#include<bits/stdc++.h>usingnamespacest......
  • CF1875B
    赛时没打……题意:给定\(T\)组数据,每组数据给定\(n\)。要求构造一个长度为\(n\)的单调上升序列满足\((3\timesa_{i})\bmod(a_{i-1}+a_{i-2})\ne0\)。首先我们运用幼儿园知识奇偶性可得奇数加奇数等于偶数奇数加偶数等于奇数奇数乘奇数等于奇数所......
  • Codeforces 1874F - Jellyfish and OEIS
    考虑对\(\summ_i-i+1\)个不可行的集合进行容斥,即钦定一些区间集,要求它们对应的\(p_l,p_{l+1},\cdots,p_r\)必须是\([l,r]\)的排列,计算方案数乘以容斥系数之和。如果容斥的集合中存在相交的区间,那么这个方案数其实不太好计算。不过根据区间的性质,对于\(l_1<l_2\ler_1<r_2......
  • 《看了受制了》第三十三天,8道题,合计182道题
    2023年10月13日昨天出去玩了,没做题,真罪恶。哎Div.3Round883ARudolphandCuttheRope题目大意每个绳子有个钉子的高度和绳子的长度,糖果和每一个绳子的末尾相连,问我需要剪掉多少根绳子才能让糖果落地。题目理解其实就是统计a>b的个数即可代码实现voidsolve(){ ......
  • 题解 Codeforces Round 901 (Div. 1) / CF1874A~E
    题解CodeforcesRound901(Div.1)/CF1874A~E比赛情况:过了AB。赛后发现B是假复杂度。https://codeforc.es/contest/1874A.JellyfishandGameProblemAlice&Bob又在博弈,Alice手上有\(n\)个苹果,第\(i\)个苹果的价值是\(a_i\);Bob手上有\(m\)个苹果,第\(i\)......
  • CF1878C Vasilije in Cacak 题解
    题目传送门简化题意有\(t\)组询问,每次询问是否能从\(1\simn\)中选择\(k\)个数使得它们的和为\(x\)。解法考虑临界情况,从\(1\simn\)中选择最小的\(k\)个数时和为\(\sum\limits_{i=1}^ki=\dfrac{(k+1)k}{2}\),从\(1\simn\)中选择最大的\(k\)个数时和为\(......
  • 《看了受制了》第三十二天,10道题,合计174道题
    2023年10月1日今天是DP!加油吧哎,接受自己的菜,也得接受之前造成的影响可恶啊。Awcing282石子合并题目大意把相邻的石子,进行合并,花费是两堆石子的数量和。问把所有石子合并成一堆的最小花费。题目理解yxcDP分析大法是经典的区间DP因为只能合并相邻的便是Dp问题我们把f[i......
  • CF1874C Jellyfish and EVA 题解
    题意给定一个有向无环图,对于任意一条边\((u_i,v_i)\),有\(u_i<v_i\)。定义一次从节点\(u\)开始的移动为如下过程:\(\tt{Alice}\)选择从\(u\)出发的且未被删除的一条边。\(\tt{Bob}\)在从\(u\)出发的且未被删除的边中等概率随机选择一条。若两人选择的边相同......
  • CodeForces 1874B Jellyfish and Math
    洛谷传送门CF传送门看到这种操作乱七八糟不能直接算的题,可以考虑最短路。对于\(a,b,c,d,m\)按位考虑,发现相同的\((a,b,m)\)无论如何操作必然还是相同的。于是考虑对于每个可能的\((0/1,0/1,0/1)\),所有终态有\((c=0/1,d=0/1)\)或者不确定。这样我们对于一......
  • CF1875B Jellyfish and Game
    思路题意大概是两人都有一组数,奇数轮,第一个人可以选择和第二个人交换一个数字也可以不换,偶数轮,第二个人可以选择和第一个人交换一个数字也可以不换。首先可以猜测,我们每次都应该选择交换对方的最大值和自己的最小值,如果自己的最小值都比对方大的话就不交换。应该比较好想,这里感......