2023北华大学程序设计新生赛部分题解

news/2024/9/22 3:27:09 标签: 算法

时光如流水般逝去,我已在校园中奋战大二!(≧▽≦) 今天,静静回顾去年的新生赛,心中涌起无尽感慨,仿佛那段青春岁月如烟花般绚烂。✧。(≧▽≦)。

青春就像一场燃烧的盛宴,激情澎湃,犹如晨曦中第一缕光辉!(☆ω☆) 它是追梦的勇气,无畏的挑战,数不清的夜晚为理想拼搏的坚定信念。让我们在这段时光中,挥洒热血,尽情追逐,书写属于自己的奇迹!(*≧ω≦)

好吧,我编不下去了,所以给这段青春打上@Deprecated注解!(。•́︿•̀。)

接下来,让我们一起回顾去年的新生赛吧!

如有大佬轻点喷,我只是个Codeforces 800分的蒟蒻,正在努力追寻更高的编程境界!(๑•̀ㅂ•́)و✧

目录

A题

B题

J题

P题

L题

M题

F题

D题

G题

A题

输入输出描述

感觉是键盘输入5个数字

然后带到事先准备好的函数式子里面去得到结果输出

#include<stdio.h>
int main(){
    int t,a,b,c,d,e;
   
    scanf("%d",&t);
    
    while(t--){
        scanf("%d%d%d%d%d",&a,&b,&c,&d,&e); 
    	printf("%d\n",((a+b)*c+d)*e);
    }
    
    return 0;
}

B题

输出hello

#include<stdio.h>
int main(){
    printf("hello");
    return 0;
}

J题

题目很逆天

输入输出描述

这题有坑 因为abc已经到了1e9 所以乘积1e18后数据会爆long 得开long long的数据类型

更大更大的数(bushi)

当时因为这个坐牢了好久

求导

y=ax^2+bx+c导数为y"=2ax+b

把x代入

#include<stdio.h>
int main(){
    int z;
    long long X;
    long long A,B,C;
    scanf("%d",&z);
    
    while(z--){
        scanf("%ld%ld%ld%ld",&A,&B,&C,&X);
        printf("%ld\n",2*A*X+B);
    }
    
    return 0;
}

P题

输入输出描述

思维 打表

可不要被题面吓唬住

多花几个图不难发现

找一下规律 圆圈都是隔着排律的

如果总格子是偶数 就占一半

如果总格子数奇数 就占一半(?) 抹掉小数

但是还有特判

如果只有一个座位 那只需要买一张票 而不是/2

#include<stdio.h>
int main(){
    long long  n,m,a;
    int z;
    scanf("%d",&z);
    
    while(z--){ 
        scanf("%ld%ld%ld",&n,&m,&a);
        
        //特判
        if(n==1&&m==1){
            printf("%ld\n",a);
        }
        else{
            printf("%ld\n",n*m/2*a);  
        }
       
        
    }
    return 0;
}

L题

输入输出描述

其实可以在纸上画出来

我试了一下

直接交了

#include <stdio.h>
int main(){
	printf("2192489272");
    return 0;
}                                              

但是也可以用数组模拟过程

&a[i+1] 用于检查 a[i+1] 是否存在且不为零。具体来说,它确保在访问 a[i+1] 时不会越界。如果 i 是 10,a[i+1] 就会访问 a[11],这会导致未定义行为。通过这个条件,可以避免这种情况。不过在改进后的代码中,我们已经确保了不会越界,所以这个条件就不再必要了。

#include<stdio.h>

int main()
{
	char a[] = "1228924297";
	int i,k;
	for(i=0; i<=10; i++)
	{
        // 如果当前位是偶数位
		if(i%2==1&&a[i+1])
		{
            // 交换位置
			k = a[i];
			a[i] = a[i+1];
			a[i+1] = k;
		}
	}
	for(i=0; i<=10; i++)
	{
        // 如果当前位是奇数位
		if(i%2==0&&a[i+1])
		{
            // 交换位置
			k = a[i];
			a[i] = a[i+1];
			a[i+1] = k;
		}
	}
    
    // 输出
	printf("%s",a);
}

M题

![img](../images/F3CCDD27D2000E3F9255A7E3E2C48800.jpeg)

输入输出描述

其实我们可以把每一种情况都枚举出来

其实就16种

#include <stdio.h>
int t;
int a,b,c,d;
int main()
{
    scanf("%d",&t);
    for(int i = 0;i<t;i++)
    {
        scanf("%d%d%d%d",&a,&b,&c,&d);
        if(a==0&&b==1&&c==0&&d==2)//
            printf("2\n");
        if(a==0&&b==1&&c==9&&d==2)///
            printf("5\n");
        if(a==0&&b==1&&c==0&&d==6)
            printf("3\n");
        if(a==0&&b==1&&c==9&&d==6)
            printf("5\n");

        if(a==9&&b==1&&c==0&&d==2)
            printf("5\n");
        if(a==9&&b==1&&c==9&&d==2)//
            printf("2\n");
        if(a==9&&b==1&&c==0&&d==6)
            printf("5\n");
        if(a==9&&b==1&&c==9&&d==6)
            printf("3\n");

        if(a==0&&b==7&&c==0&&d==2)
            printf("3\n");
        if(a==0&&b==7&&c==9&&d==2)
            printf("5\n");
        if(a==0&&b==7&&c==0&&d==6)//
            printf("2\n");
        if(a==0&&b==7&&c==9&&d==6)/
            printf("5\n");

        if(a==9&&b==7&&c==0&&d==2)
            printf("5\n");
        if(a==9&&b==7&&c==9&&d==2)
            printf("3\n");
        if(a==9&&b==7&&c==0&&d==6)//
            printf("5\n");
        if(a==9&&b==7&&c==9&&d==6)///
            printf("2\n");
    }
}

F题

输入输出描述

 

我一般称呼这种题目为左右晃...

// 注意类名必须为 Main, 不要有任何 package xxx 信息
package Dduo;
import java.util.*;
import java.math.*;

// 北华大学 
// 大数据应用与开发工作室 
// 朱道阳
// Eclipse IDE 2020 08
// OpenJDK 1.8
// 支持Java8的最新特性,比如stream操作和lambda表达式
// 点击下方网页可访问个人主页
// http://gczdy.cn

public class Main {

    static Scanner sc = new Scanner(System.in);
    static long MOD = (long) (1e9 + 7);
    
    // 注意数据类型
    static int[] arr;
    
    public static void main(String[] args) {

        int t = 1;
//        t = sc.nextInt();
        
        while (t-- > 0) {
            solve();
        }
        
        return;
    }

    
	static void solve() {
	
		 long n= sc.nextLong();
		 long ans=0;
		 
	     long min=Long.MAX_VALUE;
	     long max=Long.MIN_VALUE;
	 
	     for (int i = 0; i < n; i++) {
	            ans+= sc.nextLong();
	            min= min<ans?min:ans;
	            max= max>ans?max:ans;
	     }
	         
	     //注意初始分数
	     min= min<0?min:0;
	     max= max>0?max:0;
	         
	     System.out.println(max+" "+min);
	 
      
	}
	
	
}

// 如果你讨厌我 那我就永远消失
// 被爱的人不用道歉
// 下次再见面 不要冷冰冰 也不要说反话!

D题

输入输出描述

// 注意类名必须为 Main, 不要有任何 package xxx 信息
package Dduo;
import java.util.*;
import java.math.*;

// 北华大学 
// 大数据应用与开发工作室 
// 朱道阳
// Eclipse IDE 2020 08
// OpenJDK 1.8
// 支持Java8的最新特性,比如stream操作和lambda表达式
// 点击下方网页可访问个人主页
// http://gczdy.cn

public class Main {

    static Scanner sc = new Scanner(System.in);
    static long MOD = (long) (1e9 + 7);
    
    // 注意数据类型
    static int[] arr;
    
    public static void main(String[] args) {

        int t = 1;
//        t = sc.nextInt();
        
        while (t-- > 0) {
            solve();
        }
        
        return;
    }

    
    static void solve() {
        int n = sc.nextInt(); 
        int q = sc.nextInt();
        String str = sc.next(); 
        
        for (int i = 0; i < q; i++) {
            int x = sc.nextInt(); 
            
            // 得到a b
            int a = Math.min(x, n + 1 - x);
            int b = Math.max(x, n + 1 - x);
            
            // 截取字符串 再进行拼接
            StringBuilder sb = new StringBuilder(str.substring(a - 1, b));
            
            //翻转字符串
            sb.reverse();
            
            str = str.substring(0, a - 1) + sb.toString() + str.substring(b);
        }
        
        System.out.print(str);
    }
	
}

// 如果你讨厌我 那我就永远消失
// 被爱的人不用道歉
// 下次再见面 不要冷冰冰 也不要说反话!

G题

输入输出描述

我感觉可以打表写

把每一种情况都枚举一遍 写了30min

// 注意类名必须为 Main, 不要有任何 package xxx 信息
// package Dduo;
import java.util.*;
import java.math.*;

// 北华大学 
// 大数据应用与开发工作室 
// 朱道阳
// Eclipse IDE 2020 08
// OpenJDK 1.8
// 支持Java8的最新特性,比如stream操作和lambda表达式
// 点击下方网页可访问个人主页
// http://gczdy.cn

public class Main {

    static Scanner sc = new Scanner(System.in);
    static long MOD = (long) (1e9 + 7);
    
    // 注意数据类型
    static int[] arr;
    
    public static void main(String[] args) {

        int t = 1;
       t = sc.nextInt();
        
        while (t-- > 0) {
            solve();
        }
        
        return;
    }

    
    static void solve() {
    	
    	  long n = sc.nextLong();
          long m = sc.nextLong();
          long x = sc.nextLong();
          long y = sc.nextLong();
          long a = sc.nextLong();
          long b = sc.nextLong();
          
          if (n == 0) {
              System.out.println("YES");
              return;
          }
          
          if (a == 0 && m > 0) {
              System.out.println("YES");
              return;
          }
          
          if (b == 0) {
              if (n > m) {
                  System.out.println("NO");
              } else {
                  System.out.println("YES");
              }
              return;
          }
          
          long tmp = a / b + 1;
          if (m >= tmp) {
              System.out.println("YES");
              return;
          }
          
          if (m >= n) {
              System.out.println("YES");
          } else {
              System.out.println("NO");
          }
    }
	
}

// 如果你讨厌我 那我就永远消失
// 被爱的人不用道歉
// 下次再见面 不要冷冰冰 也不要说反话!

re了 尽力了

总结

加油吧

累瘫了

晚上又测验又验题的

能不能把我改造成微服务


http://www.niftyadmin.cn/n/5669582.html

相关文章

【CSS Tricks】如何做一个粒子效果的logo

效果展示 代码展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>粒子效果Logo</title>…

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED

Cisco Catalyst 9000 Series Switches, IOS XE Release 17.15.1 ED 思科 Catalyst 9000 交换产品系列 IOS XE 系统软件 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-catalyst-9000/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&…

GDBus.Error.org.bluez.Error.Failed: br-connection-unknown

The error you’re seeing, GDBus.Error.org.bluez.Error.Failed: br-connection-unknown, is typically related to issues with the Bluetooth stack or the pairing process on the Raspberry Pi. Here’s a step-by-step troubleshooting guide to help resolve this issue…

4.C++中程序中的命名空间

咱们在前面的程序中&#xff0c;提到过使用using namespace std;引入这个命名空间&#xff0c;那么std就是由编程系统提供的标准命名空间&#xff0c;那什么是命名空间呢&#xff1f; 想像一下&#xff0c;比如一个年级的学生&#xff0c;在记录的时候出现了重名的情况&#x…

C++校招面经(二)

欢迎关注 0voice GitHub 6、 C 和 Java 区别&#xff08;语⾔特性&#xff0c;垃圾回收&#xff0c;应⽤场景等&#xff09; 指针&#xff1a; Java 语⾔让程序员没法找到指针来直接访问内存&#xff0c;没有指针的概念&#xff0c;并有内存的⾃动管理功能&#xff0c;从⽽…

基于python上门维修预约服务数据分析系统

目录 技术栈和环境说明解决的思路具体实现截图python语言框架介绍技术路线性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示操作可行性详细视频演示源码获取 技术栈和环境说明 结合用户的使用需求&#xff0c;本系统采用运用较为广…

胤娲科技:谷歌DeepMind祭出蛋白质设计新AI——癌症治疗迎来曙光

在科技的浩瀚星空中&#xff0c;DeepMind的“阿尔法”家族总是能带来令人瞩目的璀璨光芒。这一次&#xff0c;它们再次以惊人的姿态&#xff0c; 将AI的触角深入到了生命的微观世界——蛋白质设计领域&#xff0c;为我们描绘了一幅未来医疗的宏伟蓝图。 想象一下&#xff0c;一…

一文掌握 Prompt:万能框架+优化技巧+常用指标

Prompt 万能框架 在编写 Prompt 时&#xff0c;从0到1的编写出第一版 Prompt 往往是最难的&#xff0c;而基于已有 Prompt 利用各种技巧进行优化则相对简单。善于解决 “数理问题” 的我们在面对这样一个偏 “文理问题” 的任务时&#xff0c;就像小时候写作文一样难以提笔。如…