尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
小白做题日记(3)洛谷P5440 洛谷P1378
1.https://www.luogu.com.cn/problem/P5440 (预处理枚举字符串匹配日期相关出现这种日期问题需要考虑的问题1.每个月的日期是多少天。2.一共12个月。3.平年闰年的处理二月份平年是28天闰年时29天。不能直接枚举可以利用题目给的提示排除一定不可能成为答案的数日3,7,11,13,17,19,23,29,31 2,5结尾的数一定可以被2和5整除可以排除月日质数年月日质数所以我们可以先对所有数据进行预处理再将可能是答案的数字与S进行匹配其他更多逻辑在代码中标识了说明一下在做题的时候遇到了一个问题在预处理后的数中年份不一定是4位数所以要进行补0要在前面补所以应该是while(data.size() 8) data 0 data;data 0是补在后面的这样不正确。代码#includeiostream #includecstring using namespace std; const int Max 1e7; int T,res; int ans[Max]; int flag; //判断是否是质数 bool isPrime(int n){ if(n 2) return false; if(n 2) return true; if(n % 2 0) return false; for(int i 3;i * i n;i2){ if(n % i 0) return false; } return true; } //判断是否是闰年 bool isLeap(int y){ if(y % 400 0 || (y % 4 0 y % 100 ! 0)) return true; return false; } //判断这个日期是否真实存在而且符合题意 bool isExist(int y,int m,int d){ if(y 1 || y 9999) return false; if(m 1 || m 12) return false; int days[] {0,31,28,31,30,31,30,31,31,30,31,30,31}; if(isLeap(y)) days[2] 29; return d 1 d days[m]; } //预处理所有数据便于后续字符串的匹配 void init(){ for(int y 1;y 9999;y){ for(int m 1;m 12;m){ for(int d 3;d 31;d){ //存在 if(!isExist(y,m,d)) continue; //day必须是质数 if(!isPrime(d)) continue; //保证日月为质数 int md m*100d; if(!isPrime(md)) continue; //保证年日月为质数 int ymd y * 10000 md; if(!isPrime(ymd)) continue; ans[flag] ymd; } } } } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); init(); cin T; while(T--){ res 0; string s; cin s; for(int i 1;i flag;i){ //将int类型的ans转化为string 类型为后续字符串匹配做准备 string data to_string(ans[i]); //补0 while(data.size() 8) data 0data; bool isOK true; //字符串匹配 for(int j 0;j s.size();j){ //如果输入位置不是‘-’并且数字不相等,那么这个数字一定不是答案直接跳过 if(s[j] ! data[j] s[j] ! - ) { isOK false; break; } } if(isOK) res; } cout res endl; } return 0; }总结就是不难想但是要考虑的方方面面的东西挺多的需要考虑的全面一点。AC记录https://www.luogu.com.cn/record/3028250322.https://www.luogu.com.cn/problem/P1378 (dfs回溯)这个题你一看哎N6,那6个点全排列6*5*4*3*2*1 720 感觉不是很多啊那就可以用dfs来枚举所有情况通过读题你能发现咱们所选择的点的半径r得取min(圆心到四个边的最小值到已有圆的圆心Oi - ri的最小值#includeiostream #includealgorithm #includecmath using namespace std; int n; double X[6],Y[6],R[6]; bool used[6]; int x,y,xx,yy,xmin,xmax,ymin,ymax; double res; const double PI acos(-1.0); //算两点距离 double dis(double x1,double y1,double x2,double y2){ return sqrt((x1-x2)*(x1-x2) (y1-y2)*(y1-y2)); } void dfs(int k,double sum){//k是当前选择了几个sum是当前选择的所有圆的总面积 //完成一种组合 if(k n){ res max(res,sum); return; } for(int i 0;i n;i){ if(used[i]) continue; double r min({X[i] - xmin ,Y[i]-ymin,xmax - X[i],ymax - Y[i]}); //考虑已经选了的那些点 for(int j 0;j n;j){ if(!used[j]) continue; double dist dis(X[i], Y[i], X[j], Y[j]); r min(r,dist - R[j]); } //大于0 r max(0.0,r); R[i] r; used[i] true; dfs(k1,sum PI * r *r); //回溯 used[i] false; R[i] 0.0; } } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); cin n x y xx yy ; //统一边界方向避免输入的两个顶点顺序影响计算 xmin min(x, xx); xmax max(x, xx); ymin min(y, yy); ymax max(y, yy); for(int i 0;i n;i){ cin X[i] Y[i]; } dfs(0,0.0); double ans (xmax-xmin)*(ymax-ymin) - res; cout (long long)round(ans) endl; return 0; }AC记录https://www.luogu.com.cn/record/302842760
RELATED

相关推荐

Scala递归类型:原理、实现与应用场景解析

Scala递归类型:原理、实现与应用场景解析

1. 递归类型的概念与价值在Scala类型系统中,递归类型(Recursive Types)是一种允许类型在其自身定义中引用自身的特殊构造。这种自指涉的特性为建模复杂数据结构提供了强大的表达能力。想象一下俄罗斯套娃的结构——每个套娃内部都包含一个更小…

📅 2026/10/14 8:55:34
MDO3024 示波器 + LabVIEW 能测什么?

MDO3024 示波器 + LabVIEW 能测什么?

Tektronix MDO3024 是泰克的混合域示波器,模拟通道之外还带数字通道和频谱分析能力。一台仪器三块能力,但要让它自动跑起来才算数。01 这台设备在哪些场景里干活嵌入式调试。 一路模拟信号配八路数字总线,要看时序关系——谁先谁后、建立保持…

📅 2026/10/14 8:55:34
高校职称评审管理系统设计与实现

高校职称评审管理系统设计与实现

1. 项目背景与核心价值这个职称评审管理系统是典型的教务管理类信息化解决方案,主要面向高校、科研院所和企事业单位的人力资源部门。我在参与某高校职称评审流程优化项目时,深刻体会到传统纸质申报的痛点:材料容易丢失、审核进度不透明、跨部…

📅 2026/10/14 8:55:34
MORE NEWS

更多资讯

📰

智能体记忆系统横评与治理

智能体记忆系统横评与治理 生成式人工智能正从单轮问答迈向具备长期交互能力的自主智能体。在企业级落地中,跨会话的偏好沉淀、上下文召回与数据治理,直接决定 Agent 的任务完成率与合规边界。 本文聚焦以下四个核心问题: 主流智能体记忆系…

📰

Hermes agent 贡献指南:从环境搭建到 PR 合并的完整实操

1. 从零理解 Hermes agent 的贡献体系1.1 这个项目到底在解决什么问题第一次接触 Hermes agent 的人,大概率会经历一个相同的困惑:文档看了一圈,知道它能做任务编排、能接工具、能跑多轮对话,但真到了想给它提个 PR 或者补个功能的…

📰

WPF中ObservableCollection排序的正确姿势:ICollectionView实战指南

1. 项目概述:为什么WPF里对ObservableCollection排序会让人抓狂? 在WPF开发中, ObservableCollection 是绝大多数人绑定列表数据的默认选择——它自带通知机制,UI能自动响应增删改。但一旦你尝试给它加个“按姓名升序”或“按时间…

📰

SAR点目标指标计算:sinc函数到分辨率、PSLR与ISLR的工程实践

简介:面向SAR成像、雷达成像与遥感信号处理学习者的一份MATLAB配套资料包,聚焦sinc函数这一理想点扩散函数,系统梳理分辨率、峰值旁瓣比(PSLR)、积分旁瓣比(ISLR)三个核心点目标聚焦指标。压缩包…

📰

课堂行为识别系统实战拆解:YOLO检测、行为分类与评价规则

简介:一份基于深度学习的学生课堂行为识别评价综合系统源码,属于导师指导并通过评审的毕业设计项目,评审得分98分,适合计算机相关专业正在准备毕业设计的学生,也适合需要完整项目实战练习的深度学习入门与进阶学习者。…

📰

【AI大模型进阶】微调中的过拟合表现:训练集 loss 降了,测试集降了吗?

【AI大模型进阶】微调中的过拟合表现:训练集 loss 降了,测试集降了吗? 集 loss 降了,测试集降了吗? 写在前面 大模型微调不管是全参数微调、LoRA 微调、QLoRA 低秩微调,大家最直观的监控指标就是损失 loss。很多人训练的时候看到训练 loss 一路持续下降,就默认模型效…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬