首页 > 其他分享 >Codeforces Round 809 (Div. 2)

Codeforces Round 809 (Div. 2)

时间:2023-12-12 18:34:16浏览次数:28  
标签:std int back Codeforces 809 tag LIS Div

基本情况

A题秒了。

B题卡了很久,最后过了。

C来不及了。

B. Making Towers

Problem - B - Codeforces

卡题分析

最初想法

其实已经推出来下标差为奇数才能构成高塔了。

但是思维固化,认为这个问题就必须用LIS那类做法做,然后硬打了一个 \(\operatorname O(n^2)\) 的 DP,然后就 TLE 了。

int a[N];
std::vector<int> tag[N];
long long F[N];

void solve()
{
	int n;
	std::cin >> n;
	for (int i = 1; i <= n; i++) tag[i].clear();
	for (int i = 1; i <= n; i++) std::cin >> a[i], tag[a[i]].push_back(i);
	for (int i = 1; i <= n; i++)
	{
		if (tag[i].empty())
		{
			std::cout << 0 << " ";
			continue;
		}
		long long ans = 1;
		for (int j = 0; j < tag[i].size(); j++)
		{
			F[j] = 1;
			for (int k = 0; k < j; k++)
			{
				if ((tag[i][j] - tag[i][k]) & 1)
					F[j] = std::max(F[j], F[k] + 1), ans = std::max(ans, F[j]);
			}
		}
		std::cout << ans << " ";
	}
	std::cout << std::endl;
}

但事实上,这个问题和LIS有一个巨大的差别。

LIS的传递性来源是当前单位比选择的单位大。

也就是说开头在前面的序列不一定是最长的:

1 6 3 4 5 7 9

从这个序列看显然:

6 7 9 < 3 4 5 7 9

但是这题,本身我存下标的时候,就是严格递增的啊啊!!!

而且,传递性是下标差为奇数,这玩意虽然不好证明越左边的肯定越好,但是也很不好反证,所以索性尝试直接从第一个开始算,然后相差不是奇数的就不算就行,严格来讲已经不算DP了,但这样就过了。

int a[N];
std::vector<int> tag[N];

void solve()
{
	int n;
	std::cin >> n;
	for (int i = 1; i <= n; i++) tag[i].clear();
	for (int i = 1; i <= n; i++)
	{
		std::cin >> a[i];
		if (tag[a[i]].empty())
		{
			tag[a[i]].push_back(i);
			continue;
		}
		if ((i - tag[a[i]].back()) & 1) tag[a[i]].push_back(i);
	}
	for (int i = 1; i <= n; i++)
	{
		if (tag[i].empty())
		{
			std::cout << 0 << " ";
			continue;
		}
		std::cout << tag[i].size() << " ";
	}
	std::cout << std::endl;
}

C. Qpwoeirut And The City

Problem - C - Codeforces

待补题。

标签:std,int,back,Codeforces,809,tag,LIS,Div
From: https://www.cnblogs.com/kdlyh/p/17897562.html

相关文章

  • Codeforces Round 808 (Div. 2)
    基本情况最难受的一集。A搞了一个半小时愣是没开出来。A.DifferenceOperationsProblem-A-Codeforces错误分析我分了好多类讨论,换言之没找到更本质的东西。我想的是如果前面有一个数能处理到\(1\)那后面就都能过。止步于此,而没有往更本质,更普适的地方想。然后又......
  • Codeforces Round 807 (Div. 2)
    基本情况AB题秒了。C题搞了半天,搞了一个假的解法,最后还是爆空间了。D题没想下去。C.MarkandHisUnfinishedEssayProblem-C-Codeforces错误分析写出来自己的错解之后没有进一步思考,而是觉得没希望直接做D去了,实则D也没可能半小时写完。我的错解就是预处理好每个......
  • Codeforces 198 B Jumping on Walls
    题面翻译题目描述瓦西亚在和忍者玩电脑游戏。在这个关卡,瓦西亚需要操控忍者走出一个很深的峡谷。峡谷由两面垂直于地面且互相平行的墙组成,它们的高度为\(n\)米。我们将这些墙分成许多\(1\)米长的区域,并从下到上用\(1\)到\(n\)的正整数对它们进行编号。有些地方是安全的,忍者可以......
  • Codeforces Round 914 (Div. 2)
    基本情况A题+2,幸好后面突然悟了。B题体现了读题以及一词多义的重要性。C题不会。看了一下1700分的题目,暂时先放了。A.TheThirdThreeNumberProblemProblem-A-Codeforces推出了规律,\(n\)为偶数的时候,无脑\(a=n\oplus1,b=n\oplus1,c=1\)就行。然而奇数......
  • Codeforces Round 914 (Div. 2)
    CodeforcesRound914(Div.2)A-Forked!解题思路:枚举皇后和国王能被骑士吃到的位置,重合的点数就是答案。代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;typedefpair<ll,ll>pii;#definefifirst#definesesecondconstintmod=1e9......
  • 232-父级div,包含子div,子div有点击事件,父div有点击事件,js如何实现,2个点击事件不干扰
    HTML结构<divid="parent"><divid="child"></div></div>JavaScript/jQuery代码:$(document).ready(function(){//父级div的点击事件处理程序$('#parent').on('click',function(){console.log(&#......
  • php 去除图片以及DIV的width、height、style
    1.去掉图片的宽高,去掉DIV的style样式$str='<divstyle="margin:0pxauto;width:740px;"><p><imgwidth="748"height="444"alt=""src="/images/upload/Image/manmiao_0001.jpg"/></p></div......
  • 图片铺满div元素不变形,超出部分隐藏,保留中心部分css代码
    在我们网站更新文章的时候,经常会插入图片,丰富信息。但是我们插入的图片长宽比例并不一定是固定的。我们在调用缩略图的时候,常常会出现图片变形的情况,高和宽不成比例。那么如何让图片不变形,又能铺满div元素呢?我们可以使用css代码中object-fit属性来实现。object-fit属性指定元素的......
  • CodeForces 575F Bulbo
    洛谷传送门CF传送门提供一个傻逼\(O(n^2)\)做法。首先考虑暴力dp,设第\(i\)轮后在\(j\)坐标上的最小花费为\(f_{i,j}\),有:\[f_{i,j}=\minf_{i,k}+|j-k|+\begin{cases}l_i-j&j<l_i\\0&l_i\lej\ler_i\\j-r_i&j>r_i\end{cases}......
  • Codeforces Round 914 (Div. 2)
    CodeforcesRound914(Div.2)A.Forked!#include<bits/stdc++.h>#defineendl'\n'#defineintlonglongusingnamespacestd;voidsolve(){inta,b;intx,y;cin>>a>>b>>x>>y;map<pair<int,in......