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;
} 
相关推荐
a1879272183119 分钟前
【算法】双指针与滑动窗口(二):滑动窗口——吃进、判定、吐出
算法·leetcode·双指针·滑动窗口·原理·模板·算法讲解
铭哥的编程日记20 分钟前
从一道 LeetCode Hard 到吃透一类题:加权区间调度「排序 + 二分 + DP」
算法·leetcode·职场和发展
Logic10124 分钟前
C语言/数据结构字符串题解:找出DNA序列中未配对的独特序列——排序+遍历(O(nlogn))
c语言·数据结构·字符串·数组·排序·时间复杂度·算法题
Navigator_Z1 小时前
LeetCode //C - 1248. Count Number of Nice Subarrays
c语言·算法·leetcode
wzdark1 小时前
基于链表的内存池设计与内存复用机制4
java·数据结构·链表
wzdark2 小时前
多维数组在算法设计中的存储映射问题4
算法
Phil3232 小时前
多智能体不是越多越好:Google《Towards a Science of Scaling Agent Systems》论文深度解读
算法
6Hzlia2 小时前
【Classic 150 刷题计划】 LeetCode 26. 删除有序数组中的重复项 | C++ 快慢双指针经典模板
c++·算法·leetcode
huang5791473 小时前
基于滑动窗口的流式数据算法优化思路3
算法
Ulyanov3 小时前
AudioVision Pro:基于 PySide6 + sounddevice 的实时音频可视化播放器设计
python·算法·音视频