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;
} 
相关推荐
x_xbx2 小时前
LeetCode:42. 接雨水
算法·leetcode·职场和发展
lixinnnn.2 小时前
01BFS:小明的游戏
算法
falldeep2 小时前
Claude Code源码分析
人工智能·算法·机器学习·强化学习
sheeta19982 小时前
LeetCode 每日一题笔记 日期:2026.04.14 题目:2463.最小移动距离
笔记·算法·leetcode
feng_you_ying_li2 小时前
C++11可变模板参数,包扩展,emplace系列和push系列的区别
前端·c++·算法
tankeven2 小时前
HJ177 可匹配子段计数
c++·算法
剑挑星河月2 小时前
55.跳跃游戏
数据结构·算法·leetcode
Gofarlic_OMS2 小时前
中小企业控制方法:中小型制造企业Creo许可证成本控制
java·大数据·运维·算法·matlab·制造
星马梦缘2 小时前
快表、页表地址获取+缓存、主存、硬盘数据获取
算法·操作系统·os·tlb