DUToj1221 A quest with no intelligence(欧拉回路)

针对塔达林星灵的地嗪资源供需问题,通过为无向图的边添加方向,使得尽可能多的城市达到地嗪供需平衡状态。利用欧拉回路理论解决奇数度节点问题,确保更多节点的入度等于出度。


1221: A quest with no intelligence

Time Limit:3000/1000 MS (Java/Others)   Memory Limit:163840/131072 KB (Java/Others)  Special Judge
Total Submissions:36   Accepted:8

[Submit][Status][Discuss]

Description

斯雷恩星是塔达林星灵(Tal’darim)的母星。在这座星球上,塔达林在地嗪裂隙旁建造了很多城市(地嗪是一种塔达林必须的资源)。但是实际上每个城市对地嗪的需求量不是十分固定的,而地嗪裂隙产生的地嗪量也不是稳定的。因此经常出现地嗪过少或过剩的情况。

现在,高阶领主阿拉纳克打算好好搞一搞建设,因此他要重新激活毁坏已久的城市间的折跃通路(一种单向路)来运输地嗪,使得尽可能多的城市处于地嗪供需稳定状态。对于每一条折跃通路,他需要决定这一条通路的方向,而且他必须激活每一条通路。一个城市处于地嗪供需稳定状态当且仅当进入这个城市的折跃通路和离开这个城市的折跃通路数目相等。

由于塔达林星灵普遍没有智力,唯一有智力的阿拉纳克需要你帮助他解决这个问题。如果你能解决这个问题,他可能会给你塔达林智力之链第一人的名号。

Input

第一行包括一个整数q(q≤20)q(q≤20),代表数据组数。

每组数据的第一行2个整数n,m(1≤n≤200,1≤m≤n(n−1)2)m(1≤n≤200,1≤m≤n(n−1)2),表示城市数目和折跃通路数目。

接下来m行每行2个整数ui,vi(1≤ui,vi≤n)vi(1≤ui,vi≤n),代表在城市ui,vi之间有一条折跃通路需要决定方向。

数据中不会出现重边和自环。

本题数据组数:3。

 

Output

第一行一个整数,表示最多有多少个城市处于地嗪供需稳定状态。

接下来mm行,每行2个整数ai,biai,bi,表示在ui,viui,vi之间的能量通路的方向是从ai到biai到bi的。

对于具体的通路方向,答案可能不唯一,任意输出一个即可。

 

Sample Input

1
6 6
1 2
3 2
3 4
5 4
5 1
1 6

Sample Output

4
1 2
2 3
3 4
4 5
5 1
1 6

HINT

 

Source

Codeforces

 

CF原题地址:http://codeforces.com/contest/723/problem/E

题意:给一个无向图的边添加方向,使入度与出度相等的点尽量多。

首先因为每条边都必须添加方向,则度数为奇数的边不可能符合要求。且若一个无向图只有度数为偶数的边,则其bi

 

必存在欧拉回路 欧拉回路不会的同学看这里——>:https://blog.youkuaiyun.com/qq_34454069/article/details/77779300

所以对于每两个奇数度数的点如果有边就任意定向,无边就加边,则剩下的图可以生成欧拉回路。按欧拉回路确定边方向可以使所有偶数度的点入度等于出度。然后删去多加的边即可。

代码:

    	    			
        	    			
#include<bits/stdc++.h>
using namespace std;
int du[220];
int maze[220][220];int n,m;int alen;int addu[220],addv[220];int vis[220];
int q[100000][2]; 
void dfs(int x){
	for(int i=1;i<=n;i++)
	{
		if(maze[x][i]&&maze[i][x]){
			maze[i][x]=0;
			dfs(i);
		}	
	
	}		vis[x]=1;
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		memset(du,0,sizeof(du));int u,v;alen=0;
		memset(maze,0,sizeof(maze));
		memset(vis,0,sizeof(vis));	
		scanf("%d%d",&n,&m);
		for(int i=1;i<=m;i++)
		{
			scanf("%d%d",&u,&v);
			q[i][0]=u;		q[i][1]=v;
			maze[u][v]=maze[v][u]=1;
			du[u]++;du[v]++;
		 } 
		 int ni=1;int ans=n;
		 for(int i=1;i<=n;i++)if(du[i]&1) ans--;
		 while(ni<=n)
		 {
		 	if(du[ni]&1){
		 		for(int i=ni+1;i<=n;i++)
		 		{
		 			if((du[i]&1)){
		 				du[ni]--;du[i]--;		 				
		 				if(maze[i][ni]==1){
		 				maze[ni][i]=0;					
						 }
						else{
							addu[alen]=i;addv[alen]=ni;alen++;
							maze[i][ni]=maze[ni][i]=1;
						}
		 				i=ni+1;//ans-=1;flag=1;
		 			//	break;
					 }
					 
				 }
			 }
			 else{
			 	ni++;
			 }
		 }
		 printf("%d\n",ans);
		 for(int i=1;i<=n;i++)
		 {
		 	if(!vis[i])
		 	{
		 		dfs(i);
			 }
		 }
		 for(int i=0;i<alen;i++)
		 {
		 	maze[addu[i]][addv[i]]=maze[addv[i]][addu[i]]=0;
		 }
		 for(int i=1;i<=m;i++)
		 {
		 			if(maze[q[i][0]][q[i][1]]==1) printf("%d %d\n",q[i][0],q[i][1]);
		 			else{
		 				printf("%d %d\n",q[i][1],q[i][0]);
					 }
		 }

		 
	}
 } 		
    		
    

 

(边要求按读入顺序输出

代码转载自:https://pan.quark.cn/s/a4b39357ea24 本文重点阐述了利用 LabVIEW 软件构建的锁相放大器的设计方案及其具体实施流程,并探讨了该设备在声波相位差定位系统中的实际运用情况。 锁相放大器作为一项基础测量技术,其核心功能在于能够精确锁定微弱信号的频率参数并完成相关测量工作。 在采用 LabVIEW 软件开发的锁相放大器系统中,通过计算测量信号与两条参考信号之间的互相关函数,实现对微弱信号的频率锁定,同时输出被测信号的幅值信息。 虚拟仪器技术是一种基于计算机硬件平台的仪器系统,其显著特征在于用户可以根据实际需求自主设计仪器功能,配备虚拟化操作界面,并将测试功能完全由专用软件程序实现。 虚拟仪器系统的基本架构主要由计算机主机、专用软件程序以及硬件接口模块等核心部件构成。 虚拟仪器最突出的优势在于其功能完全取决于软件编程,用户可以根据具体应用场景灵活调整系统功能参数。 在基于 LabVIEW 软件开发的锁相放大器系统中,主要运用 LabVIEW 软件平台完成锁相放大器功能的整体设计。 LabVIEW 作为一个图形化编程环境,能够高效地完成虚拟仪器的开发工作。 借助 LabVIEW 软件,可以快速构建锁相放大器的用户操作界面,并且可以根据实际需求进行灵活调整和功能扩展。 锁相放大器系统的关键构成要素包括测量信号输入通道、参考信号输入通道、频率锁定处理单元以及信号幅值输出单元。 测量信号是系统需要检测的对象,参考信号则用于引导系统完成对测量信号的频率锁定。 频率锁定处理单元负责实现测量信号的锁定功能,信号幅值输出单元则负责输出被测信号的幅值大小。 在锁相放大器的实际实现过程中,系统采用了双路参考信号输入方案来锁定测量信号。 通过分析两路参考信号之间的相...
边缘计算环境中基于启发式算法的深度神经网络卸载策略(Matlab代码实现)内容概要:本文介绍了在边缘计算环境中,利用启发式算法实现深度神经网络任务卸载的策略,并提供了相应的Matlab代码实现。文章重点探讨了如何通过合理的任务划分与调度,将深度神经网络的计算任务高效地卸载到边缘服务器,从而降低终端设备的计算负担、减少延迟并提高整体系统效率。文中涵盖了问题建模、启发式算法设计(如贪心策略、遗传算法、粒子群优化等可能的候选方法)、性能评估指标(如能耗、延迟、资源利用率)以及仿真实验结果分析等内容,旨在为边缘智能计算中的模型推理优化提供可行的技术路径。; 适合人群:具备一定编程基础,熟悉Matlab工具,从事边缘计算、人工智能、物联网或智能系统优化方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究深度神经网络在资源受限设备上的部署与优化;②探索边缘计算环境下的任务卸载机制与算法设计;③通过Matlab仿真验证不同启发式算法在实际场景中的性能表现,优化系统延迟与能耗。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注算法实现细节与仿真参数设置,同时可尝试复现并对比不同启发式算法的效果,以深入理解边缘计算中DNN卸载的核心挑战与解决方案。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值