首页 > 其他分享 >2024/7/10 笔记

2024/7/10 笔记

时间:2024-07-10 20:52:44浏览次数:16  
标签:10 xl int 笔记 2024 add maxn mp break

CF1693F
image
对0,1个数相等的0,1串进行排序一定是最优的贪心策略。
我们把0记为1,1记为-1.求前缀和
image
image
如果1的个数大于0的个数,那么就把整个串翻转然后取反,推一下就可以知道结果不会变。
image
image
image

CF1646F
image
这题我写了半天发现假了;
一开始看了样例很容易想到,每个人每轮都把自己不需要的牌往下放,由于操作数不能超过n^2-n,我还特地为每个人开了一个优先队列,按dis(当前牌还有多远(经过多少轮)才能到达他应该到的那个人),然后每次取出dis最小的下发。

这时我犯了第一个错误,每轮每个人的操作是同时进行的,而如果用循环实时更新的话,就会导致上一个人刚放下来的牌被下一个人取走,同一轮中这种情况是显然不会出现的。所以我又整了两个栈来把每一轮的修改存起来。

但我发现还是不不对

仔细思考,我发现到最后有可能某一个人的牌已经达成目标了但其他人手里还有不需要的牌,这种情况就很难处理。如果那个牌凑齐了的人把自己的一张牌下发的话,就有可能造成死循环,而其他策略我有没有找到其他可行的方法,遂放弃。
看了题解,才恍然大悟。
image

using namespace std;
const int maxn = 150;
int xl[maxn*maxn][maxn],mp[maxn][maxn],dq[maxn],dq1[maxn],n,col,tot,cnt[maxn];
void add(int x,int y){
	mp[x][y]++,cnt[x]+=(mp[x][y]==1);
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++)
		cin>>col,add(i,col);
	}
	for(int i=1;i<=n*(n-1)/2;i++){
		int pd=1;
		for(int j=1;j<=n;j++)
			if(cnt[j]!=n) {pd=0; break;}
		if(pd) break;
		tot++; int cs=0;
		for(int j=1;j<=n;j++){
			for(int k=1;k<=n;k++)
				if(mp[j][k]>1) {cs=j; break;}
			if(cs) break;
		}
		for(int j=cs;j<=n;j++)
			for(int k=1;k<=n;k++)
				if(mp[j][k]>1) {xl[tot][j]=k,mp[j][k]--,add(j%n+1,k); break;}
		for(int j=1;j<=cs-1;j++)
			for(int k=1;k<=n;k++)
				if(mp[j][k]>1) {xl[tot][j]=k,mp[j][k]--,add(j%n+1,k); break;}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++) dq[j]=(i+j-2)%n+1;
		for(int j=1;j<=i-1;j++){
			tot++;
			for(int j=1;j<=n;j++) xl[tot][j]=dq[j],dq1[j%n+1]=dq[j];
			for(int k=1;k<=n;k++) dq[k]=dq1[k];
		}
	}
	cout<<tot<<endl;
	for(int i=1;i<=tot;i++){
		for(int j=1;j<=n;j++) cout<<xl[i][j]<<" ";
		cout<<endl;
	}
	return 0;
}

CF741C
image
正解是二分图染色;
乱搞做法(与题解雷同)只不过我没有暴力搞成121212而是先按两人的冲突分配成不同的1/2
image

CF1844E
https://https://www.luogu.com.cn/problem/CF1844E
image
image
image

标签:10,xl,int,笔记,2024,add,maxn,mp,break
From: https://www.cnblogs.com/Kang-shifu/p/18294969

相关文章

  • KAN: Kolmogorov-Arnold Networks (arXiv 2024)
    KAN官方代码库:https://github.com/KindXiaoming/pykan官方tutorials:https://kindxiaoming.github.io/pykan/目录AbstractKolmogorov–ArnoldNetworks(KAN)Kolmogorov-ArnoldRepresentationtheoremKANarchitectureImplementationdetailsKAN’sApproximation......
  • 【舒一笑赠书活动-第1期】-《AIGC辅助软件开发:ChatGPT 10倍效率编程实战》
    ......
  • mathtype7永久激活码最新2024软件激活码注册码
    Hey,各位亲爱的小伙伴们!......
  • 信息学奥赛初赛天天练-43-CSP-J2020基础题-链表、连通图、2进制转10进制、栈、队列、
    PDF文档公众号回复关键字:202407102020CSP-J选择题单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)7.链表不具有的特点是()A.可随机访问任一元素B.不必事先估计存储空间C.插入删除不需要移动元素D.所需空间与线性表长度成正比8.有10个顶点的无向图至少......
  • 2024暑假集训测试2
    前言比赛链接。T1、T4比较简单,打完基本就罚坐了,想了三个小时的T2、T3也没想出来。T1酸碱度中和二分答案加贪心即可,先排序,每瓶可装\(a_i\sima_i+2*m\)。点击查看代码#include<bits/stdc++.h>#defineintlonglong#defineendl'\n'#definesortstable_sortus......
  • 宋红康MySQL笔记
    MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板https://www.bilibili.com/video/BV1iq4y1u7vj?p=43&vd_source=ecbebcd4db8fad7f74c518d13e78b165HAVING的使用#练习:查询各个部门中最高工资比10000高的部门信息#错误的写法:SELECTdepartment_id,MAX(salary)FROMem......
  • 【专题】2024年国产AI大模型应用报告合集PDF分享(附原数据表)
    原文链接:tecdat.cn/?p=36958原文出处:拓端数据部落公众号进入21世纪初期,随着计算能力飞跃与大数据浪潮的席卷,AI大模型技术经历了从无到有的蜕变,从纯学术构想迅速转化为实际应用,其复杂性与功能性均实现了质的飞跃。特别是自2022年11月OpenAI推出ChatGPT以来,大模型技术正式步入公......
  • HAJX[2024] 15Day游记
    洛谷食用博客食用简介:这是一个正在学习C++的OIer(很蒻很蒻)的日常记录。(注:2024.7.5-7.20集训日更)放在前面:本贴只是记录一下本蒟蒻的生活,(太菜了),佬们轻喷谢谢~浏览次数:(由于网站原因可能无法显示,属于正常现象)Day0期待集训ing。0-上午在来的路上听歌(摆。中午到了JZYZ......
  • Day 10 逆波兰表达式求值,滑动窗口的最大值,前k个高频词
    逆波兰表达式求值逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面。#include<iostream>usingnamespacestd;#include<stack>strings;intmain(){ strings; cin>>s; stack<int>u; for(inti=0;i<s.size();i++) { if(s[i]=='+'|......
  • 【专题】2024中国中小企业数字化发展白皮书报告合集PDF分享(附原数据表)
    原文链接:tecdat.cn/?p=36964原文出处:拓端数据部落公众号在我国经济复苏波动加剧的背景下,中小企业经营展现出脆弱性,而AI与大模型技术则为它们开启了数字化与智能化转型的新机遇窗口。面对挑战与机遇并存的局面,中小企业应加速构建数字化能力,从平台、产品、服务三方面入手,精准选......