首页 > 其他分享 >2024.11.01模拟赛

2024.11.01模拟赛

时间:2024-11-01 20:01:35浏览次数:3  
标签:box nxt 2024.11 const int 01 ans 模拟 dis

唉 不——开——心——

有些话就不说了。T1打假了,打了T3、T4的特殊样例(共10分),原本是抱着爆0的心态的,结果没想到T1数据水到直接给了我70分——但T3T4爆掉了, 总分70分 。差点爆0,不——开————心——————

题目小链接


T1【二分图匹配】

题目大意:

给出两个长度分别为n,m(1<=n<=1e3,1<=m<=1e6)的字符串A,B,字符串仅由字符'A'~'Z'组成。 翻译一通后: 求A,B最长公共子串的长度。

解题思路:

我们都知道


一大坨代码
#incIude <bits/stdc++.h>
using namespace std;
const int N=2e3+10;
const int M=1e6+5;
int n,m;
int a[M],b[M],box[100];
int f[N][N];//f[i][j]:匹配i个、s1匹配到下标j,s2所匹配到的地方 
int nxt[M][30];//nxt[i][j]:b[i]后第一个值为j的位置 
string s1,s2;
int ans;

void init()
{
	memset(box,0x3f,sizeof box);
	memset(nxt,0x3f,sizeof nxt);
}
int main()
{
	init();
	cin>>n>>m>>s1>>s2;
	for (int i=0;i<n;i++) a[i+1]=(int)(s1[i]-'A');
	for (int i=0;i<m;i++) b[i+1]=(int)(s2[i]-'A');
	
	for (int i=m;i>=0;i--)//倒序枚举,box记录上一个j值所出现的位置
	{
		for (int j=0;j<=25;j++)
		{
			nxt[i][j]=box[j];
			if (b[i]==j) box[j]=i;
		}
	}
	
	for (int i=1;i<=n;i++) f[i][0]=m+1;
	for (int i=1;i<=n;i++)
	{
		for (int j=1;j<=n;j++)
		{
			f[i][j]=min(f[i][j-1],nxt[f[i-1][j-1]][a[j]]);//不匹配第i个,与匹配第i个
		}
	}
	for (int i=n;i>=1;i--)
	{
		if (f[i][n]<=m)//没有跳出去 即可行
		{
			cout<<i;
			break;
		}
	}
	return 0;
}

T2【虚图】

题目大意:

给出由n个节点、m条变组成的无向图,给出T个“关键点”,求任意两个关键点距离的最小值。

解题思路:


两大坨代码
#incIude <bits/stdc++.h>
#define pii pair<int,int>
#define int long long
using namespace std;
const int N=2e5+5;
int n,m,T;
struct node { int nxt,val; };
vector <node> e[N];
struct node2 { int uu,vv,ww; } b[N];
int p[N];
int ans=0x3f3f3f3f3f3f3f3f;

int dis[N],c[N];
bool vis[N];
priority_queue < pii,vector <pii>,greater<pii> > q;

void read()
{
	scanf("%lld%lld%lld",&n,&m,&T);
	for (int i=1;i<=m;i++)
	{
		int u,v,w;
		scanf("%lld%lld%lld",&u,&v,&w);
		e[u].push_back({v,w});
		e[v].push_back({u,w});
		b[i]={u,v,w};
	}
	for (int i=1;i<=T;i++) scanf("%lld",&p[i]);
}

void dijstra()
{
	memset(dis,0x3f,sizeof dis);
	for (int i=1;i<=T;i++)
	{
		q.push(make_pair(0,p[i]));
		dis[p[i]]=0;
		c[p[i]]=p[i];//记录是从哪个关键点到的
	} 
	while (!q.empty())
	{
		pii t=q.top();
		q.pop();
		int u=t.second;
		if (vis[u]) continue;
		vis[u]=true;
		for (int i=0;i<e[u].size();i++)
		{
			int v=e[u][i].nxt,w=e[u][i].val;
			if (dis[v]>dis[u]+w)
			{
				dis[v]=dis[u]+w;
				c[v]=c[u];
				q.push(make_pair(dis[v],v));
			}
		}
	}
}
signed main()
{
	read();
	dijstra();
	for (int i=1;i<=m;i++)
	{
		int u=b[i].uu,v=b[i].vv,w=b[i].ww;
		if (c[u]==0||c[v]==0) continue;
		if (c[u]!=c[v]) ans=min(ans,dis[u]+dis[v]+w);//若是出现u->v->u的情况,那么不要取
	}
	printf("%lld",ans);
	return 0;
}

标签:box,nxt,2024.11,const,int,01,ans,模拟,dis
From: https://www.cnblogs.com/Myyy-L/p/18521090

相关文章

  • [极客大挑战 2019]EasySQL
    题目链接:https://buuoj.cn/challenges#[极客大挑战2019]EasySQL。打开后,页面如下所示:可以看到,只有一个登录框,没有其他的内容,一般这种情况,应当先考虑SQL注入。在密码框中直接插入万能密码:'or1=1;#。成功获取flag。知其然,知其所以然。一些常见的登陆功能的后端实现......
  • 【考试题解】多校A层冲刺NOIP2024模拟赛17
    A.网格(grid)题目内容给你一个\(n\timesm\)的字符网格\(s\),\(s_{i,j}\in[1,9]\cup\{+,*\}\),从\((1,1)\)开始,仅向下或向右走并最终到达\((n,m)\)的路径被称为合法路径,求所有合法路径对应的表达式的运算结果之和,答案对\(998244353\)取模。部分分44pts爆搜,枚举路径,......
  • 2024 -- 国庆集训 -- 临沂四中 -- 10月01 日 -- S/N模拟赛#1 题解
    A.2025--[炼石计划--NOIP模拟三]--T1--矩形赛时草了个\(O(n^4\log(n))\)竟然能过70分虽然本来就是这么分配的,发现正解只需将二分改为双指针就可以了,最气的是上面计算的时候用到还是尺取下面就用的二分(唐诗)。其实这题就是暴力,然后在低级的暴力上加一些操作变得稍微高级一......
  • 2024.11.1 test
    B维护长度为二的次幂的数组,支持单点修改,区间和,全局执行以下三种操作之一:for(inti=0;i<n;i++)b[i]=0;for(inti=0;i<n;i++)b[i()x]+=a[i];for(inti=0;i<n;i++)a[i]=b[i];()里为或,且,异或中的一种。\(n\le2^{19}\)。考虑线段树维护。注意到如果为或/且,那么相当于对......
  • 模拟大模型训练时,单双精度输出不一致?从而加剧幻觉?或导致幻觉?
        下面是Python代码。就同样的随机数据,分别在单精度、双精度下做模拟训练与预测,最后比较它们预测的值,发现不一致。    大家看看,代码是否有问题?importnumpyasnpimporttensorflowastffromtensorflow.keras.layersimportDense,LSTMfromtensorfl......
  • CVE-2022-0185
    这是一个关于整型溢出的CVE。staticintlegacy_parse_param(structfs_context*fc,structfs_parameter*param){ structlegacy_fs_context*ctx=fc->fs_private; //[1]ctx与文件描述符相关 unsignedintsize=ctx->data_size; //[2]size——目前已经写......
  • 2024.11.1总结
    本文于github博客同步更新。OI相关:A:分为两种情况处理:\(u\)到\(lca\)和\(lca\)到\(v\)。我的做法是先树剖,将每条链单独拿出来拉出来,根据\(a_i\)和\(b_i\)连边,正反各建一棵树,维护一下\(k\)级祖先。然后从\(u\)到\(v\)的时候每次根据从dfs序由小到大还是由......
  • 『模拟赛』多校A层冲刺NOIP2024模拟赛17
    Rank一般A.网络签不上的签到题。首先考虑枚举路径的做法,如果先枚举再计算的话复杂度会是\(\mathcal{O(\binom{n+m-2}{n-1}(n+m))}\)的,稍微优化一点的过程中可以去掉后面的\((n+m)\)。考虑此时我们要记什么,首先遇到加号其前面的值\(z\)就确定了,若上个符号为乘号那么......
  • NOIP2024 模拟赛 #12
    学长出的模拟赛,风格挺好。赛时8:00T1会了一个\(O(n^2\logn)\)的做法,先写一下,看看能不能过样例。8:20过了小样例,大样例跑得慢但是是对的。8:40发现一个好的做法,可以枚举\(c_i\)最小的那一天选了哪个,再枚举\(k\)天,这样纯枚举复杂度是\(O(k)\)的。但是有些细节不太......
  • 11.01模拟赛
    T1把所有的薯片按热量排序,\(l,r\)表示选取的区间的左右端点,当区间中的种类数等于\(k\)时,这个区间合法,更新答案并\(l\)++,否则\(r\)++,直到\(r=n\),最后的话要看\(l\)能否往上加,开始没有写,所以最后一个大样例一直不过,调了20min左右。T2构造题,感觉很难啊,就想着先找最多数量......