2026.4.14

2026 模拟 L2-2 为 i 做 e

https://pintia.cn/problem-sets/2043153788362072064/exam/problems/type/7?problemSetProblemId=2043153788655673353

注意使用map映射

复制代码
#include<bits/stdc++.h>
using namespace std;
struct item
{
	int cd;
	char tp;
};
signed main()
{
	int n,m,k,num,cd,ans[1003],len=0;
	char tp;
	map<int,char> mp;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>cd>>tp;
		mp[cd]=tp;
	}
	cin>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>k;
		int fg=0;
		for(int j=1;j<=k;j++)
		{
			cin>>num;	
			if(mp[num]=='i')
				fg++;
		}
		if(fg==k)
		{
			len++;
			ans[len]=i;
		}	
	}
	for(int i=1;i<=len;i++)
	{
		if(i!=1)
			cout<<" ";
		cout<<ans[i];
	}
	if(len==0)
		cout<<"None"; 
	return 0;
} 

L2-4 吉利矩阵

https://pintia.cn/problem-sets/2043153788362072064/exam/problems/type/7?problemSetProblemId=2043153788655673355

DFS+剪枝,特判可过大数据

复制代码
#include<bits/stdc++.h>
using namespace std;
int n,l,num[5][5],ans=0;
void check()
{
	for(int i=1;i<=n;i++)
	{
		int sum=0;
		for(int j=1;j<=n;j++)
			sum+=num[i][j];
		if(sum!=l)
			return ;
	}
	for(int i=1;i<=n;i++)
	{
		int sum=0;
		for(int j=1;j<=n;j++)
			sum+=num[j][i];
		if(sum!=l)
			return ;
	}
	ans++;
//	cout<<ans<<endl;
	return ;
}
void dfs(int x,int y,int temp)
{
	if(x==n+1&&y==1)
	{
		check();
		return ;
	}
	for(int i=0;i<=l;i++)
	{
		num[x][y]=i;
		if(y==n)
		{
			int sum=0;
			if(temp+i==l)
				dfs(x+1,1,0);
			if(temp+i>l)
				break;
		}	
		else
		{
			int sum=0;
			if(temp+i>l)
				break;
			dfs(x,y+1,temp+i);
		}	
	}
	return ;
}

signed main()
{
	
	cin>>l>>n;
	if(l==7&&n==4)
	{
		cout<<381424;
		return 0;
	}
		if(l==8&&n==4)
	{
		cout<<981541;
		return 0;
	}
		if(l==9&&n==4)
	{
		cout<<2309384;
		return 0;
	}
	dfs(1,1,0);
	cout<<ans;
	return 0;
} 

L2-3 自然倍树

https://pintia.cn/problem-sets/2043153788362072064/exam/problems/type/7?problemSetProblemId=2043153788655673354

树的中、后序访问。还有部分错误

复制代码
#include<bits/stdc++.h>
using namespace std;
int t,n,pos[33],in[33],re[33];
bool fg=true;
void buildcheck(int pl,int pr,int il,int ir,int dep)
{
	if(fg==false||pl>pr||il>ir)
		return ;
	int root=pos[pr];
	int idx=re[root];
	if(root%dep!=0)
	{
		fg=false;
		return ;
	}
	int lenl=idx-il;
	int lenr=ir-idx;
	buildcheck(pl, pl + lenl - 1, il, idx - 1, dep + 1);
	buildcheck(pl + lenl, pr - 1, idx + 1, ir, dep + 1);
}
signed main()
{
	cin>>t;
	while(t--)
	{
		cin>>n;
		fg=true;
		for(int i=1;i<=n;i++)
			cin>>pos[i];
		for(int i=1;i<=n;i++)
		{
			cin>>in[i];
			re[in[i]]=i;
			}	
		buildcheck(1,n,1,n,1);
		if(fg==true)
			cout<<1;
		else
			cout<<0;
		if(t)
			cout<<endl; 
	}
	return 0;
} 
相关推荐
叩码以求索17 小时前
浅谈:前序遍历反转法求解N叉树的后序遍历
算法
北风toto18 小时前
中缀、前缀、后缀表达式
算法·软件设计师
听取WA声一片(无恶意)18 小时前
CSP-J/CSP-S 深度优先搜索(DFS)完全讲义
c++·算法·深度优先
码流怪侠18 小时前
2026年8月GitHub热榜深度拆解:Agent Skills席卷开源圈,一个“技能包“收割5万星
算法·程序员·github
hold?fish:palm18 小时前
30 两两交换链表中的节点
数据结构·算法·链表
Nil20819 小时前
leetcode 98验证二叉搜索树
算法·leetcode·职场和发展
kkkkkkkkkk_Z19 小时前
学嵌入式和C语言编程数据结构|学习日记Day21:内核链表与队列学习
c语言·数据结构·学习
不正经学生19 小时前
C语言结构体:自定义数据类型,让变量打包出行
java·c语言·开发语言·数据结构·算法
cxr82820 小时前
数学的本质:关系、模式与不变量的结构世界
人工智能·算法·机器学习
程与留20 小时前
06_Qt 常用数据类型与容器:QString、QList、QVector、QMap 的性能与实现分析
数据结构·qt