首页 > 其他分享 >日常训练2025-1-18

日常训练2025-1-18

时间:2025-01-18 11:10:12浏览次数:1  
标签:std int 18 ++ 2025 日常 数组 mex

日常训练2025-1-18

D1. Turtle and a MEX Problem (Easy Version)

rating:1500

https://codeforces.com/problemset/problem/2003/D1

思路(Trick)

每一个数组会有两个mex,第一个是没有意义的,因为做一次操作得到第一个mex后补到数组中就能得到更大的mex了,这样能让x更大,所以对于每个数组,我们只需要维护第二个mex。

然后我们发现,不需要维护每一个数组的第二个mex,因为如果有一个最大的mex存在,这个mex属于数组 b ,那么我们一定是去b数组做两次操作让x最大,所以其他数组的第二个mex就没有意义了。

最后做一个计数即可。

代码

#include <bits/stdc++.h>

typedef std::pair<long long, long long> pll;
typedef std::pair<int, int> pii;
#define INF 0x3f3f3f3f
#define MOD 998244353
using i64 = long long;
const int N = 1e5+5;

void solve(){
	int n, m;
	std::cin >> n >> m;

	std::vector<int> L(n);
	std::vector a(n, std::set<int>());
	for (int i = 0; i < n; i++){
		int l; std::cin >> l;
		L[i] = l;
		for (int j = 0; j < l; j++){
			int x; std::cin >> x;
			a[i].insert(x);
		}
	}

	int f1 = 0, f2 = 0;
	for (int i = 0; i < n; i++){
		int k = 1;
		int j = 0;
		while (true){
			if (a[i].count(j)){
				j++;
			}else if (k == 1){
				j++;
				k--;
			}else if (k == 0){
				f2 = std::max(j, f2);
				break;
			}
		}
	}

	// std::cerr<< f2 << '\n';
	i64 ans = 0;
	if (m < f2){
		ans += f2*(m+1);
	}else if (m == f2){
		ans += 1LL * f2 * (f2+1);
	}else{
		ans += 1LL * f2 * (f2+1);

		ans += 1LL * (m - f2) * (f2+1 + m) / 2;
	}

	std::cout << ans << '\n';
}

signed main()
{
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);
	std::cout<<std::setiosflags(std::ios::fixed)<<std::setprecision(2);
	int t = 1, i;
	std::cin >> t;
	for (i = 0; i < t; i++){
		solve();
	}
	return 0;
}

标签:std,int,18,++,2025,日常,数组,mex
From: https://www.cnblogs.com/califeee/p/18678144

相关文章

  • 2025年flask电影票网上订票系统 程序+论文 可用于计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景关于电影票网上订票系统的研究,现有研究主要集中在在线票务平台的技术架构、用户体验优化、营销策略以及电影票务市场的整体发展趋势等方面......
  • 2025年flask二手商城 程序+论文 可用于计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景关于二手商城的研究,现有研究主要集中在电商平台的设计、运营策略、用户行为分析以及二手商品市场的现状与发展趋势等方面。然而,专门针对二......
  • CSP2025 - 搜索,折半搜索专题
    CSP2025-搜索,折半搜索专题A.P1074[NOIP2009提高组]靶形数独搜就完了,一种比较好写的方式是把所有的\(0\)搞到一个vector里面,记录它在哪一行、哪一列、哪一九宫格,然后一个一个搜能填什么。然后是优化问题,把所在行\(0\)的个数最少的行优先搜,用stable_sort。B.P4573......
  • 2025.1 做题记录
    A.环覆盖条件等价于每个点度数都是偶数,不难写出恰好保留\(k\)条边时的答案:\[[x^{\varnothing}y^k]\prod_{(u,v)}(1+x^{\{u,v\}}y)\]其中\(x\)这一维是xor卷积,\(y\)这一维是加法卷积。考虑经典套路,\((1+x^Sy)\)FWT之后每位都是\((1\pmy)\),乘起来之后......
  • PKUWC2025 游记 & WC2025不游记
    Day???CSP出分后发现自己是276,T1爆零了。这是怎么回事呢?看了代码发现最开头多了个'n'。纯来搞笑的,这下去不了WC了。Day-1考前看了看各种板子,显然一个都没有考到。Day1食堂排了30分钟的队,懒得喷,还是APIO发盒饭更人性化。上来被T1硬控一小时只有10分,心态爆炸跑......
  • NOIWC2025 实录
    Day1报道日。前情提要:结束了PKUWC,前往龙山书院参加NOIWC。今天没有安排讲课,选择了一些经典的题目完成。[ABC387G]PrimeCircuit原题链接:https://atcoder.jp/contests/abc387/tasks/abc387_g简要题意:对于\(n\)个点、有标号、每个环长度均为奇质数的仙人掌计数。考虑Pr......
  • [20250117]记录下21c下使用gdb跟踪逻辑读遇到的问题.txt
    [20250117]记录下21c下使用gdb跟踪逻辑读遇到的问题.txt--//在21c下使用gdb跟踪逻辑读遇到的问题,困扰好几天,做一个记录。--//首先我以前写过1个gdb脚本跟踪逻辑读在11g下,使用遇到一些问题,发现21c下没有使用kteinpscan,kdifxs函数。--//我先注解这部分内容,测试看看。1.环境:SCOTT@boo......
  • 关于函数(20250117)
    补充递归调用的补充:无限制的递归调用不会产生死循环,而是在栈区空间中,被调函数“入栈(保护现场)”产生的返回值地址占满整个栈区空间,程序直接崩溃。数组作为参数传递,传递的是数组的首元素地址。字符串数组的末尾存在‘\0’,因此字符串数组作为函数参数时,不需要元素个数作为函数参......
  • 2025年1月16日人工智能与科技新闻速递
    2025年已经来临,全球人工智能领域正在经历一场前所未有的技术浪潮。在这一年初,众多科技巨头纷纷发布新一轮的AI布局,展现出它们在人工智能领域的雄心和战略规划。从Google在英国市场推出AI概览功能,到Adobe的创新工具,再到EarthSpeciesProject的突破性生态保护应用,人工智能正......
  • 【做题记录】csp2025-搜索,折半搜索专题
    A.「NOIP2009」靶形数独暴搜。本着搜索必剪枝的思想,略微做一点优化:优先搜索\(0\)少的行。然后就搜就行。Code#include<bits/stdc++.h>#definelllonglong#defineilinlineusingnamespacestd;namespaceasbt{namespacecplx{boolbegin;}namespaceIO{ const......