第二十九场 蓝桥算法赛

是的你没看错 依旧惨败 只有 仅仅 完成一题 还是半对

2.守护神开会

2.守护神开会【算法赛】 - 蓝桥云课

我当时怎么就是没想起来呢 八嘎八嘎 今天下午三分钟做出来了

就是简单的判断三个数间距的大小

java 复制代码
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner myin = new Scanner(System.in);
        int n=myin.nextInt();
        int arr[][] = new int[n][3];
        for(int i=0;i<n;i++){
            for (int j = 0; j < 3; j++) {
                arr[i][j]=myin.nextInt();
            }
            int ans=Math.max(arr[i][1]-arr[i][0],arr[i][2]-arr[i][1]);
            //间距要减一
            System.out.println(ans-1);
        }
        for(int i=0;i<n;i++){

        }
    }
}

3.蓝桥ACM赛 星座骑士(张辉 5.24)

链接蓝桥账户中心

思路 通过二层循环中的i,j 用来作为函数的标记 在副函数中通过这两个值 跳过增加

下面是代码 但是我目前感觉自己到了一定的瓶颈 什么都会去思考如何使用双层循环 但是这样的话时间复杂度就是O(n^2) 不简单

java 复制代码
import java.util.Scanner; 
public class LANACM1 {
    
    public static void main(String[] args) {
        Scanner myin = new Scanner (System.in);
        int n=myin.nextInt();
        int arr[]= new int[n];
        for(int i= 0  ; i<n ; i++){
            arr[i]=myin.nextInt();
        } 
        int ans=0;
        for(int i=0 ; i<n ; i++){
            for(int j=i+1; j<n;j++){
                int su=arr[i]+arr[j];
                int ss=tosum(arr,i,j);
                if(su%2==0&&ss%2==0 || su%2!=0&&ss%2!=0){
                    ans++;
                }
            }
        }
        System.out.println(ans);
    }
    public static int tosum(int arr[],int i , int j){
        int sum=0;
        for(int cou=0;cou<arr.length;cou++){
            if(cou!=i&&cou!=j){
                sum+=arr[cou];
            }
        }
        return sum;
    }
}

豆包真的是天才 我也应该想到的 先计算数组中全部元素的和

然后在下面的二层循环中减去两个数 在进行比较

果然什么时候逆向思维都是最难的思考的

3.星座骑士更新(张辉6.6)
事实证明 万物的尽头都是数学

  1. 奇数 - 偶数 = 奇数
  2. 偶数 - 奇数 = 奇数

所以代码修改 保证运行不会超时

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner myin = new Scanner(System.in);
        long n = myin.nextInt();
        //long arr[] = new long[n];
        long totalSum = 0,ans=0;
        for (int i = 0; i < n; i++) {
            //arr[i]=myin.nextInt();
            totalSum+=myin.nextInt();
        }
        if(totalSum%2==0&& n!=2){
            ans=(n*(n-1))/2;
        }
System.out.println(ans);
}
}

6.星座解密(压轴)

题目链接 6.星座解密【算法赛】 - 蓝桥云课

这一次的压轴题给我一种一眼就有思路的感觉 但是开始下手之后却没有那么顺利

我考虑到了目标函数一定是2的n次方减1 却没有想到应该如何表示 看了题解之后才发现 这个数的二进制一定全是"1" 所以代码如下

java 复制代码
import java.util.Scanner;
public class lianqiaobest {
    public static void main(String[] args) {
        Scanner myin = new Scanner(System.in);
        int n=myin.nextInt(),ans=1;
        
        //System.out.println(ll);
        for (int i = 0; ; i++) {

           
            String ll=Integer.toBinaryString(n);
        if(!(ll.contains("0"))){
            break;
        }
                ans++;
                n+=1;
    }
 System.out.println(ans);
    }
}
相关推荐
独泪了无痕6 小时前
探索Pinyin4j-Java中的拼音转换利器
java·后端
道尔柯南7 小时前
C++ string 类详解:从常用接口到深拷贝,彻底掌握字符串处理
android·java·c++
kingx38 小时前
Bugku 3122 谷歌小恐龙题解:纯离线逆向 Vault 的 AES-GCM 加密资源(附 Python 解密器)
java·逆向·ctf·bugku·aes-gcm
Dream it possible!10 小时前
LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)
算法·leetcode·面试·动态规划
DevOpenClub11 小时前
职教高考控制线 API:招生类别枚举、筛选与空分数含义
java·数据库·高考
心抵鹊11 小时前
算法之双指针系列(一)
算法·leetcode
十二11 小时前
【洛谷题解】P1083 [NOIP 2012 提高组] 借教室(二分答案 + 差分)
数据结构·c++·算法·蓝桥杯
露天赏雪12 小时前
第3篇:Sentinel熔断降级实战:大模型接口抖动时的服务兜底方案
java·开发语言·人工智能·spring boot·spring·servlet·sentinel
小此方12 小时前
[算法实战论:动态规划]回文串问题的dp解法,回文串问题的母题,以及以此为基础的派生题
算法·动态规划
天天被压力12 小时前
【A股分钟级高频数据完全手册 #06】北交所分钟级数据接口:京市股票Pro版最新分时
java·人工智能·python