【枚举】普通枚举

目录

一、铺地毯

二、回文日期

三、扫雷


一、铺地毯

P1003 NOIP 2011 提高组 铺地毯 - 洛谷

答案如下:

cpp 复制代码
#include<iostream>
using namespace std;

const int N = 1e5 + 10;
int a[N],b[N],g[N],k[N];
int x,y;
int n; 

int find()
{
	for(int i = n; i >= 1; i--)
	{
		if(x>=a[i] && x<=a[i]+g[i] && y>=b[i] && y<=b[i]+k[i])
		{
			return i;
		}
	}
	return -1;
}

int main()
{
	cin >>n;
	for(int i = 1; i<=n; i++)
	{
		cin >> a[i] >> b[i] >> g[i] >> k[i];
	}
	cin >> x >> y;
	cout << find() <<endl;
	return 0;
}

二、回文日期

P2010 NOIP 2016 普及组 回文日期 - 洛谷

答案如下:

cpp 复制代码
#include<iostream>
using namespace std;

int x,y;
int day[] = {0,31,29,31,30,31,30,31,31,30,31,30,31};


int main()
{
	cin >> x >> y;
	int ret = 0;
	for(int i = 1; i <= 12; i++)
	{
		for(int j = 1; j <= day[i]; j++)
		{
			int k = j%10 * 1000 + j/10*100 + i%10*10 + i/10;
			int num = k*10000 + i*100 + j;
			if(x <= num && num <= y)
			{
				ret++;
			} 
		}
	}
	cout << ret << endl;
	return 0;
}

三、扫雷

P2327 SCOI2005 扫雷 - 洛谷

答案如下:

cpp 复制代码
#include<iostream>
using namespace std;

const int N = 1e4 + 10;
int a[N],b[N];
int n;

int check1()
{
	a[1] = 1;
	for(int i = 2; i <= n+1; i++)
	{
		a[i] = b[i-1] - a[i-1]- a[i-2];
		if(a[i] < 0 || a[i] > 1)
		{
			return 0;
		}
	} 
	return a[n+1] == 0;
}

int check2()
{
	a[1] = 0;
	for(int i = 2; i <= n+1; i++)
	{
		a[i] = b[i-1] - a[i-1]- a[i-2];
		if(a[i] < 0 || a[i] > 1)
		{
			return 0;
		}
	} 
	return a[n+1] == 0;
}

int main()
{
	cin >> n;
	for(int i = 1; i <= n; i++)
	{
		cin >> b[i];
	}
	int ret = 0;
	ret += check1(); //首位置放地雷 
	ret += check2(); //首位置不放地雷 
	cout << ret << endl;
	return 0;
}
相关推荐
MR.欻1 小时前
ZLMediaKit 源码分析(四):RTP/RTCP 协议栈实现分析
c++·人工智能·vscode·ffmpeg·音视频
IronMurphy1 小时前
【算法五十三】1143. 最长公共子序列
算法
被AI抢饭碗的人1 小时前
算法:动态规划
算法
妄想出头的工业炼药师1 小时前
激光雷达点云退化多地图会话
算法·开源
郝学胜-神的一滴1 小时前
Qt 高级开发 019:从零定制登录窗口按钮、Logo 样式与交互悬浮效果
开发语言·c++·qt·程序人生·交互·用户界面
YikNjy1 小时前
string(c++)
java·服务器·c++
不会就选b2 小时前
数据结构之顺序表
数据结构
汉克老师2 小时前
GESP6级C++考试语法知识(三十四、二叉搜索树(BST)(四、BST的退化))
c++·二叉搜索树·bst·gesp6级·gesp六级
y_m_h2 小时前
llvm介绍
c++