首页 > 其他分享 >2024.05 别急记录

2024.05 别急记录

时间:2024-05-05 11:11:22浏览次数:16  
标签:2024.05 别急 记录 int ll 异或 solve mp

1. POI2015 - Podział naszyjnika

考虑对每个位置附一个随机权值,保证序列中所有等于某个数的位置权值异或和为 \(0\)。则一种划分合法当且仅当两个区间异或和都为 \(0\),相当于找到一个区间 \([L,R]\) 异或和为 \(0\)。于是用 umap 记录前缀异或和即可。第二问把每个相同的前缀异或和放到一个 vector 里双指针即可。注意 \([1,i],[i+1,n]\) 之类的划分可能会被统计两次,解决方法是不统计所有以 \(n\) 结尾的区间。

点击查看代码
//P3587
#include <bits/stdc++.h>
using namespace std; typedef long long ll;
void solve();int main(){ solve(); return 0; }

const int N = 1e6 + 10;
int n, k, a[N], cnt, mx;
ll xom[N], val[N], ans;
unordered_map<ll, int> mp;
vector<int> g[N];

int cl(int x, int y){
	return min(y - x, x + n - y);
}

mt19937 rng(time(0));
uniform_int_distribution<long long>gen(1,0x3f3f3f3f3f3f3f3f);

void solve(){
	srand(unsigned(time(NULL)));
	mp[0] = ++ cnt;
	g[mp[0]].push_back(0);
	scanf("%d%d", &n, &k);
	for(int i = 1; i <= n; ++ i){
		scanf("%d", &a[i]);
		val[i] = gen(rng);
		xom[a[i]] ^= val[i];
	}
	for(int i = 1; i <= n; ++ i){
		val[i] ^= xom[a[i]];
		xom[a[i]] = 0;
		val[i] ^= val[i-1];
		if(!mp[val[i]]){
			mp[val[i]] = ++ cnt;
		}
		g[mp[val[i]]].push_back(i);
	}
	for(int i = 1; i <= cnt; ++ i){
		int x = g[i].size();
		if(mp[val[n]] == i){
			-- x;
		}
		ans += (ll)x * (x-1) / 2;
		int pr = 0;
		for(int j = 1; j < x; ++ j){
			while(pr < j && cl(g[i][pr], g[i][j]) < cl(g[i][pr+1], g[i][j])){
				++ pr;
			}
			mx = max(mx, cl(g[i][pr], g[i][j]));
		}
	}
	printf("%lld %d", ans, n - mx - mx);
}

标签:2024.05,别急,记录,int,ll,异或,solve,mp
From: https://www.cnblogs.com/KiharaTouma/p/18173298/2024-05

相关文章

  • 拂衣天气(微天气 )程序发布记录
    前言服务端部署:由于并没有建立全链路的自动化部署,目前还需要到云服务器上进行环境制作(数据库,Nginx),并拉取后端服务进行部署小程序发布:需要先完成服务端部署,保证应用正常可用服务端部署数据库安装与数据初始化最开始的时候,我是直接将在操作系统上面安装数据库,后面发现迁移的......
  • 【网络自动化运维】使用pythonping检查设备的连通性并记录可达设备(eNSP模拟器)
    实验拓扑:PC的IP地址和五台交换机的地址在同一网段,具体IP如图所示。现在保证直连网络能够通信,并且故意将SW5的接口shutdown掉,保证无法联通,作为对照的测试设备。在PC上运行python代码,测试与五台交换机的连通性。由于本次测试使用的是pythonping模块,这并不是python自带的模块,需要......
  • DHU网络攻防靶场攻击记录
    DHU网络靶场攻击记录已知:靶场入口10.199.227.xxx不完整的网络拓扑图:环境准备:kali/wsl-kali/虚拟机kali以及windows或其他操作系统的本机工具准备:Fscannmaplaravel-CVE-2021-3129-EXP-main哥斯拉Burpsuitemsfconsole(主要)目录DHU网络靶场攻击记录如何挂代理入口处机......
  • FFmpeg常用命令案例记录
    音频转换mp3为ogg格式ffmpeg-iinput.mp3-c:alibvorbisoutput.ogg降低音量(例如50%)ffmpeg-iinput.mp3-af"volume=0.5"output.mp3视频转换mkv为mp4并进行无损压缩ffmpeg-iinput.mkv-c:vlibx264-crf18-presetslow-c:acopyoutput.mp4转换4K为10......
  • Linux bash常用命令案例记录
    scp(iftheprivatekeyisid_rsa,[-i]canberemoved)scp-ikey-Pportlocalfileuser@ip:pathbacktothebeginningoflineCtrl+agototheendoflineCtrl+ecutcharacterfromcurrentpositiontothebeginningCtrl+ucutchara......
  • Linux extcon概要记录
    关键词:extcon、uevent等。1extcon介绍extcon是ExternalConnector的简称,用于抽象外部连接器,比如说AudioJack、USBMicroB/TypeC接口等。extcon驱动的主要功能是识别外部连接器状态变化,并将状态变化通知到与外部连接器相关的其他驱动。2extcon内核配置extcon配置如下:Dev......
  • 2024.5 做题记录
    362.CF553EKyoyaandTrain直接dp,设\(h_i\)为\(i\ton\)的最短路,\(f_{u,i}\)为到了点\(u\)用了\(i\)秒,还需要的最小期望花费。显然对于\(i>t\)有\(f_{u,i}=h_u+x\),否则有:\[f_{u,i}=\min\limits_{(u,v,d)\inE}\sum\limits_{j=1}^ip_jf_{v,i......
  • Windows上使用PowerShell来启用记录被丢弃的数据包(D)和成功的连接(U)的日志,你可以通过配
    Windows上使用PowerShell来启用记录被丢弃的数据包(D)和成功的连接(U)的日志,你可以通过配置Windows高级防火墙规则来实现。具体步骤如下:创建防火墙规则:首先,你需要创建适当的防火墙规则来捕获被丢弃的数据包(D)和成功的连接(U)。这可以通过PowerShell来完成。下面是一个示例,假......
  • 5.1模拟赛 T3 记录
    题面首先显然我们可以把序列变成几段连续段,如果连续段中有一个数不一样,显然不满足了。现在就要求使得这几个连续段都独立不能连成一个大段地方案数,考虑容斥。考虑进行连续段\(dp\),套路的,我们只要确认一个段最小的数是什么就可以知道整个段的值域,所以我们只需要确定连续段之间......
  • .net事件(做一个简单的记录)
    描述(做一个简单的记录):    事件(event)的本质是一个委托;(声明一个事件:publiceventTestDelegateeventTest;)  委托(delegate)可以理解为一个符合某种签名的方法类型;比如:TestDelegate委托的返回数据类型为string,参数为int和EventPara,而TestI方法的参数和返回类型和TestDel......