三道好题分享

简介: 上课睡觉 - 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!


相关文章
|
1月前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之顺序表习题精讲【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找习题精讲等具体详解步骤以及举例说明
|
算法 Android开发 容器
LeetCode 周赛上分之旅 #35 两题坐牢,菜鸡现出原形
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
95 0
|
机器学习/深度学习 存储 人工智能
AcWing - 蓝桥杯集训每日一题(DAY 1——DAY 5)
AcWing - 蓝桥杯集训每日一题(DAY 1——DAY 5)
AcWing - 蓝桥杯集训每日一题(DAY 1——DAY 5)
|
机器学习/深度学习 存储 容器
AcWing - 蓝桥杯集训每日一题(DAY 6——DAY 10)
一个二叉树,树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。
AcWing - 蓝桥杯集训每日一题(DAY 6——DAY 10)
|
机器学习/深度学习 人工智能 算法
LeetCode 周赛 345(2023/05/14)体验一题多解的算法之美
大家好,我是小彭。这场周赛是 LeetCode 第 345 场单周赛,整体难度不高,我们使用一题多解的方式强化练习。
136 0
|
存储 人工智能 算法
AcWing - 寒假每日一题2023(DAY 6——DAY 10)
AcWing - 寒假每日一题2023(DAY 6——DAY 10)
|
人工智能 Java C++
AcWing - 寒假每日一题2023(DAY 1——DAY 5)
AcWing - 寒假每日一题2023(DAY 1——DAY 5)
|
机器学习/深度学习 测试技术
AcWing - 寒假每日一题2023(DAY 16——DAY 20)
AcWing - 寒假每日一题2023(DAY 16——DAY 20)
|
存储 人工智能 BI
AcWing - 寒假每日一题2023(DAY 11——DAY 15)
AcWing - 寒假每日一题2023(DAY 11——DAY 15)
|
人工智能