首页 > 其他分享 >[AGC056C] 01 Balanced

[AGC056C] 01 Balanced

时间:2024-10-15 21:49:01浏览次数:6  
标签:01 const int pf Balanced AGC056C dis

[AGC056C] 01 Balanced

差分约束系统,Dijkstra 算法

差分约束系统的常见优化:前缀和。

然后乱搞定义把边权全部变成非负即可。

Code

#include<bits/stdc++.h>
#define ll long long
#define pf printf
#define sf scanf
using namespace std;
const int N=1e6+7;
int n,m;
int u,v,w;
int s;
int cnt;
int head[N];
struct edge{
	int to,ne,val;
}e[N<<2]; 
void add(int u,int v,int w) {
	e[++cnt]={v,head[u],w};
	head[u]=cnt;
}
int dis[N];
bool vi[N];
struct node{
	int u,dis;
	bool operator> (const node &b)const{
		return dis>b.dis;
	}
};
priority_queue<node,vector<node>,greater<node> > q;
void getans(){
	memset(dis,0x3f,sizeof(dis));
	dis[s]=0;
	q.push({s,dis[s]});
	while(!q.empty()){
		int u=q.top().u;
		q.pop();
		if(vi[u]) continue;
//		pf("%d\n",u);
		vi[u]=1;
		for(int i=head[u];i;i=e[i].ne){
			int v=e[i].to,w=e[i].val;
//			pf("%d %d %d\n",i,v,w);
			if(dis[u]+w<dis[v]){
				dis[v]=dis[u]+w;
				q.push({v,dis[v]});
			}
		}
	}
}
int main(){
	sf("%d%d",&n,&m);
	s=0;
//	for(int i=1;i<=n;i++) add(s,i,0);
	for(int i=1;i<=n;i++) add(i-1,i,1),add(i,i-1,1); 
	for(int i=1;i<=m;i++){
		sf("%d%d",&u,&v);
		u--;
		add(u,v,0),add(v,u,0);
	}
	getans();
//	for(int i=0;i<=n;i++) pf(" %d\n",dis[i]);
	for(int i=1;i<=n;i++){
		if(dis[i]-dis[i-1]>0) pf("0");
		else pf("1");
	}
}

标签:01,const,int,pf,Balanced,AGC056C,dis
From: https://www.cnblogs.com/liyixin0514/p/18468574

相关文章

  • Balanced Subsequences
    BalancedSubsequences注意子序列不一定连续。恰好最长合法括号子序列长度为\(2k\),那么废掉的)个数为\(m-k\)。恰好的方案数\(f_k\)不好求,我们可以求\(g_k\)表示长度至少为\(2k\)的方案数。(表示向上走,)表示向下走,\(g_k\)即为从\((0,0)\)走到\((n+m,n-m)\),且......
  • 20241015
    P1037易形迷宫(maze)我们可以转化一下题面,把胸口碎大石的功能换成幽灵,可以直接穿透石头,那么我们可以把炸碎石头改成可以向\(8\)个方向随便走\(k-1\)步,然后我们直接\(dij\)即可#include<bits/stdc++.h>usingnamespacestd;usingPii=pair<int,int>;consti......
  • P2480 [SDOI2010] 古代猪文
    简单数学题。显然答案是\(g^{\sum_{d|n}C_n^d}\)。考虑到\(mod\)是质数,所以\(g^{mod-1}\equiv1\pmod{mod}\),那么考虑算出指数模上\(mod-1\)。注意到\(mod-1\)并不是质数,显然可以质因数分解后CRT合并。于是就做完了。Code#include<iostream>#include<ioman......
  • 20241014
    子集和问题(subset)由于是子序列,所以选的顺序没有要求,那么我们可以从大到小排序,然后设\(dp_{i,j}\)表示选前\(i\)个中的数字,和为\(j\),然后每次统计时直接乘上组合数即可#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=3e3+5......
  • dll修复工具c2015更新失败怎么办?dll修复工具c2015更新失败详细解决步骤
    针对“dll修复工具c2015更新失败”的问题,这里提供一系列可能的解决方案。这些方案旨在帮助用户解决在尝试更新或修复VC2015相关的DLL文件时遇到的失败情况。请注意,以下步骤可能需要根据具体情况进行调整:一、检查系统更新确保系统最新:首先,确保Windows系统已安装所有可用的更......
  • 校测 20241015 图论
    保龄了!因为图论只自学过最短路Problem1.礼物分配为了庆祝大佬\(wxh\)的生日,众人决定为他准备礼物。现在有\(n\)个礼品盒排成一行,从\(1\)到n编号,每个礼品盒中可能有\(1\)个或\(0\)个礼品。大佬\(wxh\)提出了\(m\)个要求,形如“第\(l[i]\)到第\(r[i]\)个礼品......
  • 20222301 2024-2025-1 《网络与系统攻防技术》实验二实验报告
    1.实验内容本次实验主要围绕渗透测试与远程执行控制展开,通过不同工具和技术手段实现了对目标主机的深入渗透与监控。实验内容可以概括为以下几个方面:1.远程Shell获取:实验首先通过`netcat`和`cron`定时任务,以及`socat`与Windows任务计划相结合的方式,实现了对目标主机的远程Shell......
  • OpenGL学习01-环境配置-实测好用
    首先下载VisualStudio2022,配置环境,安装库等开发环境:VisualStudio2022语言:C++freeglut库glfw 库以上两个库用于窗口管理glew库glad库以上两个库帮助我们链接到openGL比较新的实现方法相同功能库可以二选一VisualStudio2022安装教程参考可以这个VisualSt......
  • Exchange2016服务器使用到的9个端口(重要)
    Exchange2016服务器使用到的9个端口(重要)端口名称及用途:443:客户端连接CAS服务器(web,Outlook)80:有时候通过80端口访问owa,会进行重定向到443IMAP协议端口:     143:非加密端口     993:加密端口pop3协议端口:     110:非加密端口     995:加......
  • 单元格之间创建循环超链接01
    我们可以使用openpyxl库来操作Excel文件。以下是代码,展示了如何在指定的工作表中为具有相同值的多个单元格之间创建循环超链接安装openpyxl首先,确保你已经安装了openpyxl库。如果没有安装,可以使用以下命令进行安装:pipinstallopenpyxlimportopenpyxldefcrea......