首页 > 其他分享 >一些并不怎么重要的题目

一些并不怎么重要的题目

时间:2024-08-21 16:38:47浏览次数:6  
标签:ch 题目 int sum 不怎么 maxn ans 一些 const

P1111 修复公路

肖邦 g 小调第一叙事曲

并查集 + \(krustra\) 板子题
code:

#include<bits/stdc++.h>

using namespace std;

const int maxn=1010;
const int maxm=100100; 

int n,m;
int en=0;
int ans=-1;
int to[maxn];

inline int read()
{
	int f=1,x=0;char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-')f=-1;ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=x*10+ch-48;
		ch=getchar();
	}
	return f*x;
}

struct edge{
	int p1,p2,d;
}ed[maxm];

bool operator<(const edge &a,const edge &b)
{
	return a.d<b.d;
}

int go(int p)
{
	if(p==to[p])return to[p];
	else return to[p]=go(to[p]); 
}

int main()
{
	n=read(),m=read();
	for(int i=1;i<=n;i++)
	{
		to[i]=i;
	}
	for(int i=1;i<=m;i++)
	{
		ed[i].p1=read(),ed[i].p2=read(),ed[i].d=read();
	}
	sort(ed+1,ed+1+m);
	for(int i=1;i<=m;i++)
	{
		int p1=ed[i].p1,p2=ed[i].p2;
		if(go(p1)!=go(p2))
		{
			to[go(p1)]=to[go(p2)];
			en++;
			ans=max(ed[i].d,ans); 
		}
	}
	if(en==n-1)cout<<ans<<endl;
	else cout<<-1<<endl;
	return 0;
 } //第一次 m、n 写反喜提 10 分

P1123 取数游戏

(秀一下我新学的 \(LaTeX\) 不过分吧 qwq)

これから、我が剣は汝と共にあり、汝の運命は我とともに存続する。

题意:

有 \(T\) 组数据;
每组数据给你一个 \(N \times M\) 的矩阵,选择若干个不相邻的元素使它们的和最大,求出这个最大的和。
\(1 \le N\)、\(M \le 6\),\(T \le 20\)。
不相邻是指 左、右、上、下、左上、左下、右上、右下 八个方向不相邻。

思路:

一看到 \(N\) 和 \(M\) 的取值范围,就知道这个题肯定是 爆搜!
那怎么搜索呢?
对于每一个数,我们有选择跟不选两种情况;
如果不选,可以继续搜索其他合法数。
如果选,那么我们就不能再选择它周围的数了,标记一下。
code:

#include<bits/stdc++.h>

using namespace std;

const int maxn=10;
const int maxm=10; //好习惯

int t;
int m,n;
int ans=0;
int mp[maxn][maxm];
int dx[]={0,1,-1,0,0,1,-1,1,-1};
int dy[]={0,-1,1,-1,1,1,-1,0,0}; //方向坐标 
int mark[maxn][maxm];

void dfs(int x,int y,int sum)
{
	if(y>m){
		dfs(x+1,1,sum);
		return;
	}
	if(x>n){
		ans=max(ans,sum);
		return;
	}
	//两种情况 
	dfs(x,y+1,sum); //不选的时候 
	if(!mark[x][y]) //选择的时候 
	{
		for(int i=1;i<=8;i++)
		{
			int xx=x+dx[i],yy=y+dy[i];
			mark[xx][yy]+=1; //将周围数的 mark +1
			//这个地方不能用 vis 判断是否遍历过,因为它也可能是其他被选择的数的相邻数 
		}
		dfs(x,y+1,sum+mp[x][y]); //sum 的值加上 选择的 这个数 
		for(int i=1;i<=8;i++)
		{
			int xx=x+dx[i],yy=y+dy[i]; //回溯 
			mark[xx][yy]-=1;
		}
	 } 
}

int main()
{
	cin>>t;
	while(t--)
	{
		ans=0;
		memset(mp,0,sizeof(mp));
		memset(mark,0,sizeof(mark)); //每次一定要清空 
		cin>>n>>m;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				cin>>mp[i][j];
			}
		}
		dfs(1,1,0);
		cout<<ans<<endl;
	}
	return 0; 
}(参考题解过的TAT,我太菜了)

标签:ch,题目,int,sum,不怎么,maxn,ans,一些,const
From: https://www.cnblogs.com/lazy-ZJY0307/p/18370446

相关文章

  • 异步编程CompletableFuture的一些使用demo
      publicstaticThreadPoolExecutorexecutor=newThreadPoolExecutor(5,5,5L,TimeUnit.SECONDS,newLinkedBlockingQueue<>(1000),newThreadPoolExecutor.CallerRunsPolicy());publicstaticvoidmain(String[]args)throwsException{Complet......
  • 本文档汇总了一些ThinkPad在开机时会出现的报错信息。
    故障现象ThinkPad在开机时常见的报错信息及含义。0177BadSVPdata,stopPOSTtask—ThechecksumofthesupervisorpasswordintheEEPROMisnotcorrect。Systemboard。主板问题。0183BadCRCofSecuritySettingsinEFIVariable。EntertheThinkPadSetuppro......
  • 关于程序员健康的一些建议
    程序员健康是一个重要的议题,因为程序员通常需要长时间坐在电脑前工作,这可能导致多种健康问题。以下是一些建议,以帮助程序员维护良好的健康状况: 对眼睛好的茶饮,炒决明子,菊花茶,更重要的是闭目养神,看绿色植物也有缓解。1.保持正确的坐姿:确保您的椅子和桌子高度......
  • 2024-08-21 关于vue3中使用emit的一些笔记
    问题1:emitisnotdefinedwatch(()=>content.value,(val)=>{emit('input',val);});原因:直接使用了未定义的emit导致报错。解决方案:使用vue3中的defineEmits函数定义一个可以定义触发的函数,比如constemit=defineEmits(['input']);此处的emit只是一个变量,你可......
  • 树上游戏(树类型题目思考题)
    第2题   树上游戏 查看测评数据信息有一棵n个节点的树。T站在u号节点上,A站在v号节点上。现在,两个人轮流移动,T是先手。每人每次移动必须移动到任何一个相邻的节点。如果某个人发现自己与对方站在了同一个节点上,那么宣布游戏结束。注意每个人每一轮必须移动。已知T希望游戏......
  • 记录常用的一些样式
    //页面外层style.mPagewidth:100%height:100%font-size:28rpxbackground-color:#f7f7f7/*水平排列*/.x-rowdisplay:flexflex-direction:rowalign-items:center/*水平排列居中*/.x-row-centerdisplay:flex......
  • 记录一些好用的Docker项目(群晖上实测好用可用)
    拉取命令:开心版emby: emby是流媒体播放平台(类似爱奇艺,但是要自备视频资源)dockerpullamilys/embyserverPT专用qb: qb是种子下载器,全名:qbittorrent   官网:GitHub-qbittorrent/qBittorrent:qBittorrentBitTorrentclientdockerpullnevinee/qbittorrent日常......
  • frida hook的一些东西记录
    https://bbs.kanxue.com/thread-265160-1.htmhttps://bbs.kanxue.com/thread-281761-1.htm针对以上代码文档,没有做验证,后续需要验证,先记录下目前遇到的一些app的检测方法基本都是通过某个so衍生的pthread_create线程,来检测frida,基本上名字都是:libmsaoaidsec.so一种很明了的是,a......
  • 有一些手机,安装软件时,一直显示安装中,这个是啥情况?
    手机一直显示安装中的情况可能由多种原因造成,以下是一些可能的原因及相应的解决方法:一、可能原因1.网络问题:手机网络不稳定或信号弱,导致下载的安装包不完整或下载过程中断。2.存储空间不足:手机内存或存储空间不足,无法为新的应用程序提供足够的安装空间。3.软件兼容性问题:下载的......
  • 关于SEGGER Embedded Studio的一些设置,自己摸索的
    1.删除EmbeddedStudio最近的项目如下图所示,File->RecentProjects->ManageRecentProjects,就可以打开RecentProjects视图窗口,在此窗口中右键点击项目,进行删除,或者其他操作。2.EmbeddedStudio的启动文件问题我原来的疑惑是EmbeddedStudio有自己的启动文件,CubeMX中ST也......