首页 > 其他分享 >第 18 场 小白入门赛(蓝桥)水浒专场!!

第 18 场 小白入门赛(蓝桥)水浒专场!!

时间:2024-09-08 21:21:58浏览次数:12  
标签:10 专场 int 18 ll cin 蓝桥 ++ include

第二题:情报传递1

代码1(c++):

#include <iostream>
using namespace std;

int main() {
    int t;
    cin >> t;
    while (t--) {
        int a, b, c;
        cin >> a >> b >> c;
        int steps = 0; 
        while (a < b) {
            if (a % c == 0) {
                a++; 
                continue;
            }
            if (a + 2 <= b && (a + 2) % c != 0) {
                a += 2; 
            } else {
                a++;
            }
            steps++; 
        }
        
        cout << steps << endl;
    }
    return 0;
}

算法包含bfs,可以利用对题目分析,避免筛选的情况进行求解。

代码2(c):

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int t;
  scanf("%d",&t);
  for(int i = 0; i < t; i++){
    int a,b,c;
    int day = 0;
    scanf("%d %d %d",&a,&b,&c);
    while(a != b){
      if( (a+2) % c != 0 && (a+2) <= b){
        a = a + 2;
        day++;
      }
      else{
        a = a + 1;
        day++;
      }
    }
    printf("%d",day);
  }
}

第三题:村长分钱

关键语句:其一,”只要满足 n 除以 x 后的余数为 k“,可以利用数学公式n/x=zi.....k,k即为该除法的余数;其二,包含两个整数 n的范围较大,为10的九次方,使用long long定义。

代码1

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
  ll n,k,x=0,h=0,c=0;
  cin>>n>>k;
  n=n-k;
  for(ll i=1;i<=sqrt(n);i++){
    if(n%i==0){
       if(i>k){
         x++;
       }
       if(i!=n/i&&n/i>k){
        x++;
       }
    }
  }
  cout<<x;
  return 0;
}

条件解释

  • if(i > k)

    • 这个条件检查当前因子 i 是否大于 k
    • 如果 i 是 n 的一个因子,并且 i 大于 k,则计数器 x 增加 1。
    • 意思是:我们只关心大于 k 的因子。
  • if(i != n / i && n / i > k)

    • 这个条件检查 n / i(即 n 的另一个因子,和 i 配对)是否与 i 不相等,并且 n / i 是否大于 k
    • i != n / i 确保我们不重复计算相同的因子(例如,当 n 是完全平方数时)。
    • 如果 n / i 是 n 的因子,并且大于 k,则计数器 x 也增加 1

优点:避免超时,可以节省了运算的次数,利于快速得到答案。

第四题:情报传递2

代码:(来自@Leavery)

#include <iostream>
using namespace std;

int main() {
  int t;
  cin>>t;
  while (t--) {
    int a,b,c;
    cin>>a>>b>>c;
    if (a/c == b/c) {
      cout<<(b-a+1)/2<<'\n';
    } else if (c%2 == 0) {
      if (a%2 == 1) {
        cout<<(b-a+1)/2<<'\n';
      } else {
        cout<<(b-a)/2+1<<'\n';
      }
    } else {
      int t1 = a/c*c+c;
      int t2 = b/c*c;
      int a1 = (t1-1-a+1)/2+1;
      int a3 = (b-t2-1+1)/2;
      int a2 = (c+1)/2 * (b/c-a/c-1);
      cout<<a1+a2+a3<<'\n';
    }
  }
  
  return 0;
}

第五题:好汉身份 

代码:(来自@照猫画虎)

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5;
bool c(pair<int ,int > a,pair<int, int> b)
{
    return a.first+a.second <= b.first + b.second;//按和从小到大比价,若小,返回true,数组内的a,b,不移动
}
int main()
{
    long long n, sum = 0;//必须为longlong ,不然会爆
    cin >> n;
    pair <int, int> a[N];
    for (int i = 0; i < 2 * n; i++)
        cin >> a[i].first;//将原价存入pair的第一个数中
    for (int i = 0; i < 2 * n; i++)
        cin >> a[i].second;//将特价存入pair的第二个数中
    sort(a,a + 2 * n,c);//将0到2*n-1个数排序,排序标准按c函数执行
    for (int i = 0; i < 2 * n; i++)
    {
                //两人从小到大按顺序贪心拿取
        if(i % 2==0) sum += a[i].first;
        else sum -= a[i].second;
    }
    cout << sum;
    return 0;
}

第六题:武功秘籍

代码:(来自@做不了一点)

#include <iostream>
using namespace std;
using ll=long long;
int main()
{
  ll n,k;
  cin>>n>>k;
  ll num=n%10+1,ans=(k-1)%(n%10+1);
  ll a=10;
  n/=10;
  while(k>num){
    ans=((k-1)/num)%(n%10+1)*a+ans;
    num+=(n%10)*num;
    n/=10;
    a*=10;
  }
  cout<<ans;
  return 0;
}

标签:10,专场,int,18,ll,cin,蓝桥,++,include
From: https://blog.csdn.net/2301_80098422/article/details/142032784

相关文章

  • AtCoder Beginner Contest 187 A~D 题解
    A-LargeDigits题目大意给定两个三位整数\(A\)和\(B\),求它们数位和的最大值。数位和:例如,\(123\)的数位和是\(1+2+3=6\)。\(100\leA,B\le999\)输入格式\(A~~B\)输出格式一行,即\(A\)和\(B\)数位和的最大值。样例输入输出12323495939531710099927......
  • AtCoder Beginner Contest 188 A~D 题解
    A-Three-PointShot题目大意有两个球队,分别得到\(X\)分和\(Y\)分,问得分较少的球队能否在获得三分后超越对方。\(0\leX,Y\le100\)\(X\neY\)\(X\)和\(Y\)都是整数。输入格式\(X~Y\)输出格式如果能,输出Yes;否则,输出No。样例XY输出35Yes分析这个不用......
  • LOJ4218 「IOI2024」尼罗河船运 题解
    题目描述有\(n\)件手工艺品,第\(i\)件重量为\(w_i\),有参数\(a_i\)和\(b_i\)。每艘船最多可以运输两件手工艺品:如果只运输第\(i\)件,重量没有要求,代价为\(a_i\)。如果同时运输第\(i\)和第\(j\)件,要求\(|w_i-w_j|\leD\),代价\(b_i+b_j\)。\(q\)次询问,给......
  • 蓝桥杯【物联网】零基础到国奖之路:一.赛项介绍与软件安装
    蓝桥杯【物联网】零基础到国奖之路:1.赛项介绍与软件安装第一章大赛概述第二章软件安装1,jre-8u221-windows-x642,SetupSTM32CubeMX-5.3.03,mdk5234,Keil_STM32L0xx_DFP_2.0.15,CMSIS-DAP第一章大赛概述蓝桥杯(电子类)物联网设计与开发科目由北京四梯科技有限公司设计和......
  • 【数据结构】18.图(Graph)
    一、图的基本概念图是由顶点集合及顶点间的关系组成的一种数据结构:G=(V,E),其中:V={x|x属于某个数据对象集}是有穷非空集合;E={(x,y)|x,y属于V}或者E={<x,y>|x,y属于V&&Path(x,y)}是顶点间关系的有穷集合,也叫做边的集合。注意:线性表可以是空表,树可以是空树,但图......
  • 第18篇 .net使用RabbitMQ实现短信密码重置
    在C#中使用RabbitMQ通过短信发送重置后的密码到用户的手机号上,你可以按照以下步骤进行1.安装RabbitMQ客户端库首先,确保你已经安装了RabbitMQ客户端库。你可以通过NuGet包管理器来安装:dotnetaddpackageRabbitMQ.Client2.创建RabbitMQ连接和通道创建一个Rabbi......
  • javase复习day18API
    游戏打包exeMathabs方法的小bug:以int类型为例,取值范围:-2147483648~2147483647如果没有正数与之对应,那么传递负数结果有误-2147483648没有正数对应则结果还是 -2147483648可以使用JDK15后的新方法absExact如果结果有误则会报错packageMathDemo1;publiccla......
  • [2400-] ARC 171-180
    我好像还没写完所有题解。已经补/口胡到\(177\)。有的题写了也没价值啊??我真的有资格说没价值吗???你在这里看不到所有橙色以及以上的题的口胡,也许吧。\(\textbf{ARC171}\)\(\textbf{A-NoAttacking}\)\(\text{AT600,maths,brute.}\)车在对角线一个隔一个,剩下的兵看着......
  • 《足球经理2018》启动失败?深度解析为何《足球经理2018》会报GfxCore.dll错误及解决方
    《足球经理2018》启动失败并报告GfxCore.dll错误是一个常见的问题,这通常与游戏的图形处理相关文件缺失或损坏有关。下面是对这一问题的深度解析及解决方法:深度解析1.文件缺失或损坏:GfxCore.dll是《足球经理2018》及其相关图形处理功能所依赖的动态链接库文件。如果该文件......
  • php审计[HCTF 2018]WarmUp 1
    <?phphighlight_file(__FILE__);//这个函数会将当前PHP文件的源代码以高亮方式显示出来,便于调试或展示源代码。classemmm{publicstaticfunctioncheckFile(&$page)//这个方法接受一个引用类型的参数$page,用于检查请求的文件是否在允许的文件白名......