C++信息学奥赛一本通1049

晶晶收到贝贝的展览邀请,但每周1、3、5有课。此题需判断晶晶是否能赴约,若能则输出YES,否则输出NO。

 

晶晶赴约会

时间限制: 1000 ms         内存限制: 65536 KB 提交数: 1053     通过数: 728

【题目描述】

晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的1、3、5有课必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出YES;如果不能则输出NO。注意YES和NO都是大写字母!

【输入】

输入有一行,贝贝邀请晶晶去看展览的日期,用数字1到7表示从星期一到星期日。

【输出】

输出有一行,如果晶晶可以接受贝贝的邀请,输出YES,否则,输出NO。注意YES和NO都是大写字母!

【输入样例】

2

【输出样例】

YES

【来源】


No
源码:
#include<iostream>
using namespace std;
int main()
{
int a;//定义A
cin>>a;//输入A
if(a==1||a==3||a==5)//如果贝贝在1,3,5邀请晶晶
cout<<"NO";//那么晶晶就不能去
else//反之其他日子
cout<<"YES";//可以
return 0;//结束程序
}
### C++ 信息学奥赛一本 1465 剪花布条 解题思路 对于题目描述中的剪花布条问题,在处理较小规模的子串时,可以采用栈来辅助解决。当面对较短的字符串模式匹配或相似操作时,利用栈结构能够简化逻辑并提高效率[^1]。 具体来说,该类问题常涉及两个主要部分: - **预处理阶段**:过构建某种数据结构(如KMP算法中的next数组),使得后续查询更加高效。 - **匹配过程**:遍历目标字符串的同时维护一个指针指向当前正在比较的位置;每当遇到不匹配的情况,则依据预先计算好的跳转表调整位置继续尝试匹配下一个可能的位置。 然而针对此特定编号下的编程挑战,更推荐使用哈希函数配合滑动窗口技术来进行快速求解。这种方法不仅适用于较长文本上的多次询问场景,而且易于理解和编码实现。 #### 关键点分析 - 输入长度较大,直接暴力枚举所有可能性会超时; - 需要找到连续相同字符的最大数量作为答案输出; - 可以考虑用双端队列(deque)存储临时结果,并保持其单调性以便于实时更新最优解。 下面是基于上述讨论给出的一种可行方案及其对应的C++代码片段: ```cpp #include <iostream> #include <deque> using namespace std; int main() { string s; cin >> s; // 获取输入字符串 deque<int> dq; int maxLen = 0, currentCharCount = 0; for (char c : s) { if (!dq.empty() && dq.back() != c - 'A') { while(!dq.empty()) dq.pop_back(); // 清空不同字母后的序列 currentCharCount = 0; } ++currentCharCount; dq.push_back(c-'A'); maxLen = max(maxLen, currentCharCount); } cout << "最大连续相同的字符数:" << maxLen << endl; } ``` 这段程序实现了对给定字符串中连续相等字符数目统计的功能。它采用了双向队列`deque`保存最近一次出现的不同字符之前的全部重复项,从而可以在O(n)时间内完成整个任务的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值