三道好题分享

简介: 上课睡觉 - AcWing题库

4366. 上课睡觉 - AcWing题库


这个视频讲解一定不能倍速看


AcWing 4366. 上课睡觉(寒假每日一题2023) - AcWing

7.1.png

image.png

#include <iostream>
using namespace std;
const int N = 100010;
int n;
int w[N];
bool check(int cnt)//cnt=sum/i表示每堆的石子数
{
    for (int i = 0, s = 0; i < n; i ++ )
    {
        s += w[i];
        if (s > cnt) return false;
        if (s == cnt) s = 0;//刚好满足一堆,那么清零,准备下一堆
    }                       //如果s<cnt,它还可以继续增加石子数
    return true;
}
int main()
{
    int T;
    scanf("%d", &T);
    while (T -- )
    {
        scanf("%d", &n);
        int sum = 0;
        for (int i = 0; i < n; i ++ )
        {
            scanf("%d", &w[i]);
            sum += w[i];
        }
        for (int i = n; i; i -- )//从大到小枚举,方便找到最大的i
        {         
            if (sum % i == 0 && check(sum / i))//由于最终每堆的石子数量相等,所以sum%i==0
            {                                  // sum/i是每堆的石子数
                printf("%d\n", n - i);
                break;
            }
        }
    }
    return 0;
}


P2010 [NOIP2016 普及组] 回文日期 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)


7.2.png

这个题虽然题目很长,但 暗藏玄只因


下面代码中的做法不是刻意求出回文串

而是自己先写出一半,再复刻出另一半(相当于自己写出了一个回文串)

然后判断这个自己写出的数是否在题目给出的范围内


Oh xie!


image.png

#include <bits/stdc++.h>
using namespace std;
int main()
{
  int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
  int k[367],n=0,t,p,q,ans=0;
  cin>>p>>q;
  for(int i=1;i<=12;i++)
  {
    for(int j=1;j<=a[i];j++)
    {
      t=i*100+j;//先算出一半
      k[++n]=(t%10*1000+t/10%10*100+t/100%10*10+t/1000%10)*10000+t;//再复刻出另一半
      if(k[n]>=p&&k[n]<=q)//在题目中给出的两个日期中间
      ans++;
    }
  }
  cout<<ans;
  return 0;
}

7.3.png

7.4.png

#include <bits/stdc++.h>
using namespace std;
string s1,s2;
int len1=1,len2=1; 
int main()
{
    cin>>s1>>s2;
    for(int i=1;i<=min(s1.size(),s2.size());i++)//比较s1与s2长度,并取最小 
    {
        if(s1.substr(0,i)==s2.substr(s2.size()-i,i))//提取子串 
        {
            len1=i;
        }
        if(s2.substr(0,i)==s1.substr(s1.size()-i,i))
        {
            len2=i;
        }
     }
    if(len1>len2)//比较大小,输出 
    {
        cout<<len1;
    }
    else
    {
       cout<<len2;
    }
}

Code over!


相关文章
|
9月前
|
移动开发 Shell
蓝桥杯:2020 国赛 例题:天干地支
蓝桥杯:2020 国赛 例题:天干地支
49 0
|
1月前
|
算法 Python
Python技术分享:使用穷举法解决鸡兔同笼问题
Python技术分享:使用穷举法解决鸡兔同笼问题
39 1
|
10月前
|
算法
【过河卒】回溯算法保姆式解题
【过河卒】回溯算法保姆式解题
57 0
|
10月前
两道智力题
两道智力题
|
11月前
|
算法 Android开发 容器
LeetCode 周赛上分之旅 #35 两题坐牢,菜鸡现出原形
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
70 0
|
12月前
过河卒-蓝桥杯-动态规划
过河卒-蓝桥杯-动态规划
87 0
|
算法 C++ Python
【每日算法Day 87】今天我脱单了,所以大家不用做题了!
【每日算法Day 87】今天我脱单了,所以大家不用做题了!
|
机器学习/深度学习 人工智能 算法
LeetCode 周赛 345(2023/05/14)体验一题多解的算法之美
大家好,我是小彭。这场周赛是 LeetCode 第 345 场单周赛,整体难度不高,我们使用一题多解的方式强化练习。
109 0
|
人工智能
|
人工智能
好题分享
好题分享
67 0