【bzoj2597】[Wc2007]剪刀石头布 费用流

MSC8112 TDM模块双阈值中断与缓冲区管理实战详解 在嵌入式DSP系统中,DMA(直接内存访问)是提升实时数据流处理效率的核心技术,它允许硬件控制器在无需CPU干预的情况下,直接在内存与外设间搬运数据。其工作原理是通过配置描述符,将CPU从繁重的数据搬运任务中解放出来,从而专注于核心计算。这项技术的核心价值在于显著降低CPU负载、减少中断延迟,并提升系统整体吞吐量。它广泛应用于语音编解码、无线通信等对实时性要求苛刻的场景。本文聚焦于飞思卡尔MSC8112通信处理器,深入解析其TDM接口模块中集成的智能DMA控制器。该控制器通过创新的双阈值指针中断机制与灵活的 阅读详情

不错的题。

ans=n*(n-1)*(n-2)/6-d[i]*(d[i]-1)/2
d[i]表示第i个人胜场次数
d[i]每增加1,ans减少d[i]
源点S向每个点连n-1条容量为1的边,费用分别为0、1、……n-2
每条边对应的点向汇点T连一条容量为1,费用为0的边
每个点向从自己连出的边连一条容量为1,费用为0的边
最小费用最大流
方案数就是看一条边是否满流,满流就是选,否则就是不选


#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<iostream>
#define maxn 12000
#define maxm 100010
#define inf 1000000000

using namespace std;

int head[maxn],c[maxm],len[maxm],p[maxm],next[maxm],to[maxm],fr[maxn],dis[maxn],q[maxn];
bool vis[maxn];
int a[110][110],e[110][110];
int n,m,num,s,t,ans;

void addedge(int x,int y,int z,int w)
{
	num++;to[num]=y;c[num]=z;len[num]=w;p[num]=x;next[num]=head[x];head[x]=num;
	num++;to[num]=x;c[num]=0;len[num]=-w;p[num]=y;next[num]=head[y];head[y]=num;
}

int cal(int x,int y)
{
	if (x>y) swap(x,y);
	return (x-1)*n+y;
}

bool spfa()
{
	for (int i=s;i<=t;i++) dis[i]=inf;
	int l=0,r=1;
	dis[s]=0;q[1]=s;vis[s]=1;
	while (l!=r)
	{
		l++;if (l==maxn) l=0;
		int x=q[l];
		for (int p=head[x];p;p=next[p])
		  if (c[p] && dis[x]+len[p]<dis[to[p]])
		  {
		  	dis[to[p]]=dis[x]+len[p];
		  	fr[to[p]]=p;
		  	if (!vis[to[p]])
		  	{
		  		r++;if (r==maxn) r=0;
		  		q[r]=to[p];vis[to[p]]=1;
		  	}
		  }
		vis[x]=0;
	}
	if (dis[t]==inf) return 0; else return 1;
}

void mcf()
{
	int x=inf;
	for (int i=fr[t];i;i=fr[p[i]]) x=min(x,c[i]);
	for (int i=fr[t];i;i=fr[p[i]]) ans-=x*len[i],c[i]-=x,c[i^1]+=x;
}

void costflow()
{
	while (spfa()) mcf();
}

int main()
{
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
	  for (int j=1;j<=n;j++)
	    scanf("%d",&a[i][j]);
	ans=n*(n-1)*(n-2)/6;
	s=0;t=n*(n+1)+1;num=1;
	for (int i=1;i<=n;i++)
	  for (int j=0;j<n;j++)
	    addedge(s,i,1,j);
	for (int i=1;i<=n;i++)
	  for (int j=1;j<=n;j++)
	  {
	    if (a[i][j]==1 || a[i][j]==2) addedge(i,n+cal(i,j),1,0),e[i][j]=num-1;
	    if (i<j) addedge(n+cal(i,j),t,1,0);
	  }
	costflow();
	printf("%d\n",ans);
	for (int i=1;i<=n;i++)
	{
		for (int j=1;j<=n;j++)
		{
			if (j!=1) printf(" ");
			if (a[i][j]!=2) printf("%d",a[i][j]);
			else if (c[e[i][j]]) printf("0"); else printf("1");
		}
		printf("\n");
	}
	return 0;
}


避坑指南:CATIA V5设计支架零件时,草图约束和特征顺序的那些‘坑’ 本文深入探讨了CATIA V5在支架类零件设计中的关键技巧,重点解析草图约束和特征顺序的常见问题与解决方案。通过实战案例展示如何避免模型崩溃、提升设计稳健性,并分享高效建模的七个习惯,帮助工程师从工具操作升级到设计思维,显著提高工作效率。 阅读详情

相关推荐

wc2007

Winter Camp 很难的,有题目数据报告

BZOJ2597: [Wc2007]剪刀石头布

BZOJ2597: [Wc2007]剪刀石头布费用流 之 特殊性质建图题解:感觉数据范围像网络流之类的,但是根本不会做。。。当直观建模失效的时候,就弃疗吧,一般要么就是线性规划建图,要么就是有特殊的性质。我们注意到图中的边是完全的,这时候应该想到总共有C(n,3)个三角形,正难则反,减去不符合条件的就是答案。定义a败给b等价于a->b,当一个三角形中的一个点x有两条出边时,这个三角形就是不符合条件的

FTM's Blog 472

DrMOS电路仿真

将驱动电路与功率MOS集成化后既是DrMOS。把驱动芯片以及上下桥MOSFET封装在一起,这样每一相供电就有了单独的驱动芯片,并且这种高度整合的MOSFET可以通过更高的电流、发热比传统的MOSFET也小很多且更节能 自举升压同步BUCK高低侧栅驱动电路原理及仿真 ...

Srambler的博客 5039

【bzoj 2597】剪刀石头布(费用流)

传送门biu~ 一张竞赛图中,任意选三个点如果不形成环,那么一定有一个点的出度为2。也就是每当在任意一个点中找到任意两个出度,图中就会失去一个三元环。 令点i" role="presentation" style="position: relative;">iii的出度为degreei" role="presentation" style="position: relative;">degre

zP1nG 404

从d、q轴电流到电机性能:FOC控制中角度偏移的实战影响与调试策略

本文深入探讨了永磁同步电机FOC控制中d、q轴电流与角度偏移对电机性能的影响及调试策略。通过分析角度偏移导致的效率下降、电流异常等问题,提供了实用的四步调试法和参数优化技巧,帮助工程师有效提升电机控制精度和效率。

weixin_29264201的博客 294

UE5新手必看:3种UI定位方法实战(含蓝图配置截图)

本文为UE5新手详细解析了三种核心UI定位方法:屏幕空间、场景空间和世界空间。通过实战蓝图配置与控件操作,指导开发者如何根据HUD、角色血条、3D物体标记等不同应用场景,正确选择并配置UI的定位方式,以实现清晰的信息传递与沉浸式体验。

weixin_29018815的博客 473

[WC2007]剪刀石头布(最大流)

洛古 一句话题意:给定一张图,每两点之间有一条有向边或无向边,把所有无向边定向,使图中三元环个数尽量多 因为原图是一个完全图,假设图中任意三点都能构成三元环,那么途中三元环的个数为:\(\binom{n}{3}\)。 那么如果一个三元组不是三元环,那么有一个点的出度为2。 我们假设一个点的出度为d,那么对于这个点,三元环会减少\(\frac{d (d-1)}{2}\) 所以三元环的数量为...

173

华为S5720交换机堆叠配置

S5720交换机,做下堆叠,两条线,交叉互联(即A交换机23口连到B交换机24口,A交换机24口连接B交换机23口)。PS:S5720堆叠可基于电口或者光口做,本次测试基于电口。 SWA配置 # 改名 [Huawei]sysname SWA # 最好先shutdown接口 [SWA]interface GigabitEthernet 0/0/23 [SWA-GigabitEthernet0/0/23]shutdown [SWA-GigabitEthernet0/0/23]interface G.

Markdown 6340

[WC2007]剪刀石头布 Solution

题意:给一张竞赛图,图中部分边的方向已经确定,现在要给那些不确定的边定向,求图中最多能有多少三元环。 显然三元环不方便直接求。考虑如何反着求。 答案最多是n×(n−1)×(n−2)6\dfrac{n\times (n-1)\times (n-2)}{6}6n×(n−1)×(n−2)​。 那么对于一个人,设他获胜的场数为xxx,那么整个三元环的数量就会减少x×(x−1)2\dfrac{x\times...

chenzhuo__的博客 174

10分钟快速搭建OpenClaw(基于Windows+飞书)

OpenClaw 是一款功能强大的 AI 智能体工具,能够帮助用户管理邮件、日历等日常事务。本文详细介绍了在 Windows11 系统上安装和配置 OpenClaw 的完整步骤,包括 Node.js 环境搭建、Git 安装、OpenClaw 部署以及飞书机器人创建与对接。通过简单的命令行操作和可视化界面配置,用户可以快速完成 AI 助手部署,实现智能办公自动化。文中还提供了飞书机器人权限设置等关键环节的图文指引,帮助用户轻松完成系统集成。

Hello, New World! 2927

【系统移植】 移植主线U-Boot(v2024.01-rc3)到RK3399

[系统移植] 移植主线U-Boot(v2024.01-rc3)到RK3399

Systemcall名屋 1004

BZOJ-2597 [Wc2007]剪刀石头布(费用流)

2597: [Wc2007]剪刀石头布 Time Limit: 20 Sec  Memory Limit: 128 MBSec  Special Judge Submit: 1146  Solved: 538 [Submit][Status][Discuss] Description 在一些一对一游戏的比赛(如下棋、乒乓球和羽毛球的单打)中,我们经常会遇到A胜过B,B胜过C而C又胜过

十分残念的博客 684

9、 量子支持向量机:从经典到量子的跨越

本文详细介绍了量子支持向量机(QSVM)的基本原理及其在PennyLane和Qiskit框架中的实现方法。从经典SVM的基础知识出发,逐步深入到量子领域的应用,包括如何定义量子核函数、与scikit-learn集成以及在模拟器和实际量子计算机上的训练和评估过程。最后通过表格和流程图总结了不同框架下的实现要点,为未来量子机器学习的研究提供了参考。

weixin_42433737的博客 184

BZOJ 2597 WC2007 剪刀石头布 费用流

题目大意:给定一个竞赛图,一些边没有指定方向,求一个指定方向的方案使竞赛图中三元环的数量最多 直接做不好做,我们考虑补集法 三个点之间如果不是三元环,那么一定有一个点有两条出边 于是我们可以得到ans=C(n,3)-ΣC(degree[x],2) 于是我们考虑费用流的模型 每条边化为一个点 从源点向每个点连n-1条边,流量为1,费用为0,1,...,n-2 一条边如果可以或必须成为一

世界 2847

【基础-单选】Row组件中有两个Text组件,如果使用justifyContent对齐方式,下面哪个属性可以实现左右两端对齐:

Row组件中有两个Text组件,如果使用justifyContent对齐方式,下面哪个属性可以实现左右两端对齐

江拥羡橙的博客 1304

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

BZOJ 2597: [Wc2007]剪刀石头布 费用流

Description在一些一对一游戏的比赛(如下棋、乒乓球和羽毛球的单打)中,我们经常会遇到A胜过B,B胜过C而C又胜过A的有趣情况,不妨形象的称之为剪刀石头布情况。有的时候,无聊的人们会津津乐道于统计有多少这样的剪刀石头布情况发生,即有多少对无序三元组(A, B, C),满足其中的一个人在比赛中赢了另一个人,另一个人赢了第三个人而第三个人又胜过了第一个人。注意这里无序的意思是说三元组中元素的顺序

LZJ209的博客 924

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【BZOJ2597】[Wc2007]剪刀石头布 最小费用流

【BZOJ2597】[Wc2007]剪刀石头布 Description 在一些一对一游戏的比赛(如下棋、乒乓球和羽毛球的单打)中,我们经常会遇到A胜过B,B胜过C而C又胜过A的有趣情况,不妨形象的称之为剪刀石头布情况。有的时候,无聊的人们会津津乐道于统计有多少这样的剪刀石头布情况发生,即有多少对无序三元组(A, B, C),满足其中的一个人在比赛中赢了另一个人,另一个人赢了第三个...

aodanchui1057的博客 128

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[bzoj2597][Wc2007]剪刀石头布_费用流

[Wc2007]剪刀石头布 题目大意:https://www.lydsy.com/JudgeOnline/problem.php?id=2597 题解: 发现直接求三元环不好求,我们考虑任选三个点不是三元环的个数。 这样的话,必定是有一个点被其余两个点指,我们就根据这个来求。 又发现,最后的答案之和所有点的度数有关。 就是,$\sum C_{d_i}^{2}$。 紧接着...

weixin_30832143的博客 143

bzoj 2597 [Wc2007]剪刀石头布 费用流

题面 题目传送门 解法 简单来说,题意就是确定一些无向边的方向,使得三元环的个数最多。 考虑所有边都确定的情况下怎么计算三元环的个数,假设每一个点的度数为d[i]d[i]d[i],通过容斥原理可以得到(n3)−∑i=1n(d[i]2){n\choose 3}-\sum_{i=1}^n{d[i]\choose 2}(3n​)−∑i=1n​(2d[i]​)。 那么我们可以将那些没有确定的边按照编号提...

mysterynoip的博客 253

【BZOJ】【P2597】【Wc2007】【剪刀石头布】【题解】【费用流】

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2597 wc的题不看题解能做? http://xietutu.com/archives/958 话说lrj的费用流模板常数真是一坨翔,好在氧气+linux+神评测机让我卡时过了 Code: #include using namespace std; const int maxn=2

退役狗的专栏 921

【BZOJ2597】【Wc2007】剪刀石头布 费用流,没写zkw卡时过

题解,比较常规式是费用流,没写那个神贪心。 首先是三元环需要取补集,先C(n,3)算出总环数,然后减去失败的三元环。 我们发现在一个三元环中,如果有某个选手入度(or 出度)为2,那么就会破坏这个环。 所以当选手有x个度时,就会破坏∑(i∈[0,x])个三元环(0+....+x-1),P.S.这个是C(x,2)推出来的。 建图: 第一层源点     到下一层每个点若干条边 

辗转山河弋流歌 1802

【BZOJ】2597: [Wc2007]剪刀石头布 -费用流&组合数学

传送门:bzoj2597 题解 考虑转成图:把每个人看做一个点,比赛为边,胜负确定的比赛的边指向胜的一方。两两之间都要进行比赛,是一个完全图。问题即为给定一些边的方向,现在需要给剩下的边定向,使得满足题目要求的三元环尽量多。 易得人数为nnn时,三元环总数为(n3)(n3)\dbinom n3,满足要求的三元环必然可以缩点,而考虑一个不满足条件的三元环:存在一个点在三元环中入度为22...

远行客 376
上一篇: 【bzoj3308】九月的咖啡店 费用流
下一篇: 【bzoj4276】[ONTAK2015]Bajtman i Okrągły Robin 费用流+线段树优化建图
qingdaobaibai
博客等级 码龄13年 67粉丝 307原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值