首页 > 其他分享 >8.9第四周周五学习总结

8.9第四周周五学习总结

时间:2024-08-09 11:50:29浏览次数:19  
标签:总结 cnt dist 8.9 long int 周五 return define

1 最小生成树(讲课)

【金山文档 | WPS云文档】 最小生成树
https://kdocs.cn/l/cnDfoEEJS694

prim模板(不常用)
#include <bits/stdc++.h>
using namespace std;
// #define int long long
const int N = 1100;
const int mod = 998244353;
vector<int> v[N];
#define INF 0x3f3f3f3f
int n, m;
long long cnt;
int b[N];
int sum;
int st[N];
int a[N][N];//用的邻接矩阵 
int dist[N];
int prim()
{
	int ans = 0;
	memset(dist, 0x3f, sizeof dist);
	for (int i = 0; i < n; i++)
	{
		int t = -1;
		for (int j = 1; j <= n; j++)
		{
			if (!st[j] && (t == -1 || dist[t] > dist[j]))
			{
				t = j;
			}
		}
		//集合之外的距离最小的点 
		if (i!=0&& dist[t] == INF)//如果不是第一个点 
		{
			return INF;
		}
		if (i)
		{
			ans += dist[t];
		}
		st[t] = 1;//注意标记
		for (int j = 1; j <= n; j++)
		{
			dist[j] = min(dist[j], a[t][j]);//这里和djst不一样
		}
		//更新到集合的距离 
	}
	return ans;
}
void solve()
{
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			if (i == j)
				a[i][j] = 0;
			else
				a[i][j] = INF;
		}
	}
	//初始化距离 
	for (int i = 1; i <= m; i++)
	{
		int l, r, w;
		cin >> l >> r >> w;
		a[l][r] = a[r][l] = min(a[l][r], w);//重边 
	}
	int x = prim();
	if (x == INF)
	{
		cout << "impossible";
	}
	else
		cout << x;
}
signed main()
{
	int t;
	t = 1;
	// cin>>t;
	while (t--)
	{
		solve();
	}
	return 0;
}

## 2)kruskal模板
kruskal


3)农场开井

农场开井练习

农场开井
#include <bits/stdc++.h>
using namespace std;
// #define int long long
#define ll long long
const int N = 4e5 + 10;
#define endl "\n"
typedef pair<int, int> pii;
int n;
int m;
int cnt;
int f[N];
struct node
{
    int l;
    int r;
    int v;
} a[N];
bool cmp(node p, node q)
{
    return p.v < q.v;
}
int find(int x)
{
    if (x != f[x])
    {
        f[x] = find(f[x]);
    }
    return f[x];
}
int b[N];
void solve()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        cin >> b[i];
    }
    for (int i = 1; i <= n; i++)
    {
        f[i] = i;
    }
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n; j++)
        {
            int x;
            cin >> x;
            if (i != j)
            {
                a[++cnt].l = i;
                a[cnt].r = j;
                a[cnt].v = x;
            }
        }
    }
    for (int i = 1; i <= n; i++)
    {
        a[++cnt].l = n + 1;
        a[cnt].r = i;
        a[cnt].v = b[i];
    }
    /*前者处理实际农场之间的连接费用,后者处理每个农场与虚拟井节点之间的开井费用,++cnt所以没有产生覆盖*/
    sort(a + 1, a + 1 + cnt, cmp);
    int sum = 0;
    int ans = 0;
    for (int i = 1; i <= cnt; i++)
    {
        int x = find(a[i].l);
        int y = find(a[i].r);
        if (x != y)
        {
            f[x] = y;
            ans += a[i].v;
        }
    }
    cout << ans;
}
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int T;
    T = 1;
    // cin>>T;
    while (T--)
    {

        solve();
    }
    return 0;
}

标签:总结,cnt,dist,8.9,long,int,周五,return,define
From: https://www.cnblogs.com/hoshino-/p/18350513

相关文章

  • JavaScript -- 总结 10 (小白)
    MouseEvent属性<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document<......
  • 【总结】注册码泄露原理以及例题
    引言题目给了小明的机器码:1653643685031597用户user_id:xiaoming可以看到题目采用了SIMD指令集该指令格式在CTF和攻防对抗中经常出现,可以提高执行效率的同时也可以增加逆向的难度。对于此类指令和题目,我们分析的方法是:遇到查意思,查的多了就跟看正常代码一样,采用动态分析。机......
  • Flux 生态更新总结
    :FLUXTinyVAE训练脚本FluxAIGridComparisons::FLUX生成的发型、服装、国籍、年龄等各种图像对比集合ComfyUI:适配 xlabsFluxcontrolnetcomfyui-replicateInstantX/FLUX.1-dev-Controlnet-Canny-alpha:又一个CannyControlNet模型daniel5984/flux_TrainingFLUX.1-DEV-Ca......
  • 深度学习每周学习总结N6:使用Word2vec实现文本分类
    ......
  • 多线程学习总结
    Java多线程学习总结本章目标理解线程的基本概念理解线程与进程的区别熟悉线程的实现方式了解线程的管理熟悉线程的生命周期掌握线程同步掌握线程池了解线程通信掌握线程定时器什么是进程进程就是正在运行的程序,它是系统进行资源分配和调度的基本单位,各个进程之间......
  • 易漏范数总结(二范数、F范数以及其他变种范数)
    一.矩阵二范数矩阵的二范数是一个值,具体计算如下:                                                即矩阵的二范数是通过计算其最大特征值并进行开根号得到的。二.向量二范数向量的二范数也是一个值,不过是对向量的每个......
  • 多场景多目标总结
    多场景存在问题场景特征差异,训练样本以及训练梯度不一致场景之间相互影响,有增益部分,也有互斥部分如何解决上面这些问题:公域特征抽象出来(用户画像,物品特征、全场景行为序列),私域特征(场景特征行为特征,场景位置,版面等)公域特征网络+每个私域场景一个特征网络(concatenat......
  • 微信小程序笔记完整总结,带你零基础速成微信小程序2.0
      ......
  • 第五周总结
    最近,我从成都的旅行中回到了日常生活,并开始了驾驶证科目二的学习。每天清晨五点半,我准时起床,赶往训练场进行驾驶练习,直到中午才回到家中。尽管练车的时间安排得很早,但这段经历让我感受到了驾驶的乐趣和责任感,也增强了我对即将到来的考试的信心。下一周,我将迎来科目二的考试,这将是......
  • 算法小总结-图论
    拓扑排序[HNOI2015]菜肴制作////Createdbyfxzon2024/8/3.//#include<bits/stdc++.h>usingnamespacestd;intans[1008611];#defineintlonglongboolTopSort(vector<vector<int>>&G,intn,vector<int>&inDegree){......