当前位置: 首页 > news >正文

蓝桥杯2023(十四届)省赛——统计日期(八重神子)

统计日期

2.日期统计 - 蓝桥云课 (lanqiao.cn)

其实一开始我想直接暴力的,然后写着写着突然觉得可以优化一下: 优化方法:先找所有2023的位置,记录初始和最后的位置 找出所有合法日期的位置,使用前缀和,计算以当前2023结尾时,其后有几个合法日期,相加即可 但是有个问题就是,如何如果遇见相同的日期,怎么存储其位置?

最后还是用的八重神子(我不是OP):注意筛选还有月和日不能是00

注意,下面的代码只是用来计算的,不能作为AC代码使用,因为本题是填空题,所以超时无所谓

#include <iostream>
#include <set>
using namespace std;int str[101];
int m[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
set<int>s;bool check(int a, int b, int c, int d)
{//只要确定月份是否匹配就行int month = 10 * a + b;int day = 10 * c + d;if (month > 12 || month==0)	return false;if (day > m[month] || day==0)	return false;return true;
}int main()
{for (int i = 0; i < 100; i++)	cin >> str[i];//优化方法:先找所有2023的位置,记录初始和最后的位置//找出所有合法日期的位置,使用前缀和,计算以当前2023结尾时,其后有几个合法日期,相加即可//但是有个问题就是,如何如果遇见相同的日期,怎么存储其位置?// 考虑了这么多,我是真的没想到,直接用了一个八重神子for (int i = 0; i < 100; i++)	//2if(str[i]==2)for (int j = i + 1; j < 100; j++)	//0if(str[j]==0)for (int k = j + 1; k < 100; k++)	//2if(str[k]==2)for (int a = k + 1; a < 100; a++)	//3if (str[a] == 3)for(int b=a+1;b<100;b++)	//月1if (str[b] == 0 || str[b] == 1)for (int c = b + 1; c < 100; c++)	//月2{if (str[b] == 1 && str[c] > 2)	continue;for (int d = c + 1; d < 100; d++)	//天1{if (str[d] > 3)	continue;for (int e = d + 1; e < 100; e++)	//天2{if (check(str[b], str[c], str[d], str[e])){int temp =1e7 * str[i] + 1e6 * str[j] + 1e5 * str[k] + 1e4 * str[a] + 1e3 * str[b] + 1e2 * str[c] + 1e1 * str[d] + str[e];s.insert(temp);}}}}/*for (auto it : s)cout << it << endl;*/cout << s.size();	//235return 0;
}

http://www.lryc.cn/news/350823.html

相关文章:

  • 【Redis基础知识一】
  • 如何在go项目中实现发送邮箱验证码、邮箱+验证码登录
  • Docker 部署 Nginx 实现一个极简的 负载均衡
  • Java刷题总结(面试)
  • ipad air6电容笔推荐,2024十大高性价比电容笔排行榜!
  • Java Memorandum
  • 大数据学习之 Hadoop部署
  • xxe漏洞--xml外部实体注入漏洞
  • Nginx反向代理与负载均衡:让网站像海豚一样灵活
  • 企业应考虑的优秀云安全措施
  • 如何将老板的游戏机接入阿里云自建K8S跑大模型(下)- 安装nvidia/gpu-operator支持GPU在容器中共享
  • 代码随想录-Day16
  • 31.@Anonymous
  • oracle 表同一列只取最新一条数据写法
  • C语言游戏实战(12):植物大战僵尸(坤版)
  • 提权方式及原理汇总
  • 【leetcode----二叉树中的最大路径和】
  • Rust: 编译过程中链接器 `cc` 没有找到
  • 【vue-3】动态属性绑定v-bind
  • Rust:多线程环境下使用 Mutex<T> 还是 Arc<Mutex<T>> ?
  • 关于如何创建一个可配置的 SpringBoot Web 项目的全局异常处理
  • docker三种自定义网络(虚拟网络) overlay实现原理
  • C#上位机1ms级高精度定时任务
  • 盘点28个免费域名申请大全
  • 【vue】封装的天气展示卡片,在线获取天气信息
  • 【MySQL】库的操作和表的操作
  • 【学习笔记】后端(Ⅰ)—— NodeJS(Ⅱ)
  • VMware报平台不支持虚拟化Win10家庭版关闭Hyper-V及内核隔离
  • 简单介绍十款可以免费使用的API测试工具
  • 非授权人员进入报警系统