【枚举】普通枚举

目录

一、铺地毯

二、回文日期

三、扫雷


一、铺地毯

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;
}
相关推荐
I_belong_to_jesus6 小时前
C++关于分支预测的优化1
开发语言·c++·算法
Rabitebla7 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
码客-ygluu13 小时前
一个通用游戏数据服务器
c++·架构
another heaven13 小时前
【C/C++ Ranges 是零开销抽象吗?拆开管道、惰性求值和编译期膨胀】
c语言·开发语言·c++
Code_Solitude13 小时前
C语言动态内存 + 柔性数组 + 数组名退化
c语言·算法·柔性数组
上海潭龙东海科技有限公司13 小时前
客运站管控之动态孪生技术方案(新增一屏管控模块
数据仓库·人工智能·算法·重构·动态规划
YLCHUP15 小时前
【思维&图论建模】题解:债权(debt)_图论_建模_思路转化_思维题目_C++算法竞赛
c++·笔记·算法·数学建模·贪心算法·深度优先·图论
xiaoye-duck16 小时前
《C++ 项目:手写大模型接入 SDK》会话模块整合:内存 SessionManager 与 DataManager 持久化联动
开发语言·数据库·c++·语言模型
思麟呀16 小时前
背包DP(01背包+完全背包)
c++·算法