当前位置: 首页 > article >正文

2022蓝桥杯Java A组、B组

[蓝桥杯2022初赛] 裁纸刀
443
[蓝桥杯2022初赛] 求和

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {
    static Scanner cin;
    static PrintWriter cout;
    static long a[];
    static long sum[];
    public static void init() throws IOException{
        cin=new Scanner(System.in);
        cout=new PrintWriter(System.out);
        a=new long[(int)(7e5+5)];
        sum=new long[(int)(7e5+5)];
    }
    public static void solve() throws IOException{
        int n=cin.nextInt();
        for(int i=1;i<=n;i++) {
            a[i] = cin.nextInt();
            sum[i] = sum[i - 1] + a[i];
        }
        long ans=0;
        for(int i=1;i<n;i++)
            ans+=a[i]*(sum[n]-sum[i]);
        cout.println(ans);
    }
    public static void main(String[] args) throws IOException {
        init();
        solve();
        cout.close();
    }
}

[蓝桥杯2022初赛] 青蛙过河

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class Main {
    static Scanner cin;
    static PrintWriter cout;
    static long a[];
    static long sum[];
    static long n,x;
    public static void init() throws IOException{
        cin=new Scanner(System.in);
        cout=new PrintWriter(System.out);
        a=new long[(int)(7e5+5)];
        sum=new long[(int)(7e5+5)];
    }
    public static int check(long d){
        long tmp=0;
        for(long i=1;i+d<=n;i++){
            tmp= (int) (sum[(int) (i+d-1)]-sum[(int) (i-1)]);
            if(tmp<x)
                return 0;
        }
        return 1;
    }
    public static void solve() throws IOException{
        n=cin.nextInt();
        x=cin.nextInt();
        x=x*2;
        for(int i=1;i<n;i++){
            a[i]=cin.nextInt();
            sum[i]=sum[i-1]+a[i];
        }
        sum[(int) n]=sum[(int) (n-1)];
        long l=0,r=(int)(1e9),mid,ans = 0;
        while(l<=r){
            mid=(l+r)/2;
            if(check(mid)!=0) {
                r=mid-1;
                ans=mid;
            }
            else{
                l=mid+1;
            }
        }
        cout.println(ans);
    }
    public static void main(String[] args) throws IOException {
        init();
        solve();
        cout.close();
    }
}

[蓝桥杯2022初赛] GCD

import java.io.*;
import java.util.*;
public class Main {
    static Scanner cin;
    static PrintWriter cout;
    public static void init() throws IOException{
        cin=new Scanner(System.in);
        cout=new PrintWriter(System.out);
    }
    public static void solve(){
        long a,b,c;
        a=cin.nextLong();
        b=cin.nextLong();
        c=Math.abs(a-b);
        cout.println(c-a%c);
    }
    public static void main(String[] args) throws IOException {
        init();
        int t=cin.nextInt();
        while(t-->0){
            solve();
        }
        cout.close();
    }
}

2052: [蓝桥杯2022初赛] 全排列的价值
暴力全排列:10%

public static void dfs(int x){
        if(x==n+1){
            for(int i=2;i<=n;i++){
                int g=0;
                for(int j=1;j<i;j++){
                    if(a[j]<a[i]) g++;
                }
                ans+=g;
            }
        }
        for(int i=1;i<=n;i++){
            if(vis[i]!=0) continue;
            a[x]=i;
            vis[i]=1;
            dfs(x+1);
            vis[i]=0;
        }
    }

动态规划:

import java.io.*;
import java.util.*;
public class Main {
    static Scanner cin;static PrintWriter cout;
    public static void init() throws IOException{
        cin=new Scanner(System.in);cout=new PrintWriter(System.out);
    }
    public static void solve(){
        long n=cin.nextLong();
        long mod=998244353;
        long ans=0,g=1;
        for(long i=2;i<=n;i++) {
            ans=(ans*i%mod+i*(i-1)/2%mod*g%mod)%mod;
            g=g*i%mod;
        }
        cout.println(ans);
    }
    public static void main(String[] args) throws IOException {
        init();
        solve();
        cout.close();
    }
}

JAVA B组
[蓝桥杯2022初赛] 星期计算
7
2058: [蓝桥杯2022初赛] 字符统计

import java.io.*;
import java.util.*;
public class Main {
    static Scanner cin;static PrintWriter cout;
    public static void init() throws IOException{
        cin=new Scanner(System.in);cout=new PrintWriter(System.out);
    }
    public static void solve(){
        Map<Character,Integer> mp=new TreeMap<Character,Integer>();
        String str=cin.next();
        char s[]=str.toCharArray();
        int len=str.length();
        for(int i=0;i<len;i++) {
            if(mp.containsKey(s[i])==false)
                mp.put(s[i],1);
            else
                mp.put(s[i],mp.get(s[i])+1);
        }
        int tmp=0;
        for(Map.Entry<Character,Integer> entry:mp.entrySet()){
            if(tmp<entry.getValue())
                tmp=entry.getValue();
        }
        String ans="";
        for(Map.Entry<Character,Integer> entry:mp.entrySet()){
            if(tmp==entry.getValue())
                ans+=entry.getKey();
        }
        cout.println(ans);
    }
    public static void main(String[] args) throws IOException {
        init();
        solve();
        cout.close();
    }
}

2059: [蓝桥杯2022初赛] 最少刷题数

import java.io.*;
import java.util.*;
public class Main {
    static Scanner cin=new Scanner(System.in);
    static PrintWriter cout=new PrintWriter(System.out);
    static int N=100010;
    static int a[]=new int[N],b[]=new int[N];
    public static void solve(){
        int n=cin.nextInt();
        for(int i=1;i<=n;i++) {
            a[i]=cin.nextInt();
            b[a[i]]++;
        }
        for(int i=1;i<=100000;i++) b[i]+=b[i-1];
        for(int i=1;i<=n;i++){
            if(b[100000]-b[a[i]]<=b[Math.max(0,a[i]-1)]){
                cout.print(0+" ");continue;
            }
            int l=a[i]+1,r=100000,mid,ans=0;
            while(l<=r){
                mid=l+r>>1;
                if(b[100000]-b[mid]<=b[mid-1]-1){ //只处理大于情况,减一代表去除本身
                    r=mid-1;ans=mid;
                }
                else
                    l=mid+1;
            }
            cout.print(ans-a[i]+" ");
        }
    }
    public static void main(String[] args) throws IOException {
        solve();
        cout.close();
    }
}

2057: [蓝桥杯2022初赛] 山

import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
    static Scanner cin=new Scanner(System.in);
    static PrintWriter cout=new PrintWriter(System.out);
    static int N=100010;
    static int a[]=new int[N];
    public static boolean check(long x){
        String str=x+"";
        int len=str.length();
        char s[]=str.toCharArray();
        for(int i=0,j=len-1;i<j;i++,j--){
            if(s[i]!=s[j])
                return false;
        }
        for(int i=1;i<(len+1)/2;i++){
            if(s[i]<s[i-1])
                return false;
        }
        return true;
    }
    public static void main(String[] args) throws IOException {
        int tmp=0;
        for(int i=2022;i<=2022222022;i++){
            if(check(i)){
                tmp++;
                cout.println(i);
            }
        }
        cout.println("tmp:"+tmp);
        cout.close();
    }
}

2060: [蓝桥杯2022初赛] 求阶乘

import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
    static Scanner cin=new Scanner(System.in);
    static PrintWriter cout=new PrintWriter(System.out);
    public static long cal(long x){
        long cnt=0;
        while(x>0){
            cnt+=x/5;
            x/=5;
        }
        return cnt;
    }
    public static void main(String[] args) throws IOException {
        long k=cin.nextLong();
        long l=1,r=Long.MAX_VALUE-5,mid,ans=0;
        while(l<=r){
            mid=l+r>>1;
            if(cal(mid)>=k){
                r=mid-1;ans=mid;
            } else{
                l=mid+1;
            }
        }
        long tmp=cal(ans);
        if(tmp==k){
            cout.println(ans);
        }
        else{
            cout.println(-1);
        }
        cout.close();
    }
}

2062: [蓝桥杯2022初赛] 数组切分

import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
    static Scanner cin=new Scanner(System.in);
    static int N=(int)(1e6+5);
    static int mod=1000000007;
    static int a[]=new int[N];
    static int f[]=new int[N];
    public static void main(String[] args) throws IOException {
        int n=cin.nextInt();
        for(int i=1;i<=n;i++) a[i]=cin.nextInt();
        f[0]=1;
        for(int i=1;i<=n;i++){
            int mi=a[i],mx=a[i];
            for(int j=i;j>=1;j--){
                mi=Math.min(mi,a[j]);
                mx=Math.max(mx,a[j]);
                if(i-j==mx-mi)
                    f[i]=(f[i]+f[j-1])%mod;
            }
        }
        System.out.println(f[n]);
    }
}

http://www.kler.cn/a/4580.html

相关文章:

  • 详情页 路由传值
  • dockerfile实现lnmp
  • 【Unity功能集】TextureShop纹理工坊(十三)打开、保存工程【TSD文件】(终章)
  • shell脚本回顾1
  • rtthread学习笔记系列(4/5/6/7/15/16)
  • 极客说|Azure AI Agent Service 结合 AutoGen/Semantic Kernel 构建多智能体解决⽅案
  • 数据结构与算法:堆和栈的区别概述
  • Vue+springboot 高校图书馆座位预约选座系统java毕业设计项目推荐
  • 阿里云-云存储OSS
  • celery详解
  • Leetcode.1574 删除最短的子数组使剩余数组有序
  • macOS 13.3 正式版(22E252)黑苹果恢复版镜像
  • 【算法题】2333. 最小差值平方和
  • 【Paper】2016_基于LQR的多智能体系统协同最优控制_姚蒙
  • c语言基础知识——字符串和内存函数(上)
  • JavaScript Math、Number 对象
  • 陪了我‘十几年‘的电脑,有必要升级到固态硬盘吗?
  • 01.关键字、基本函数、预处理
  • langchain学习4
  • hexo 搭建个人博客记录
  • 理解浏览器的进程与线程
  • AWVS详细教程
  • Linux cmp 命令
  • java的泛型擦除啷个回事罗
  • JDK1.8下多线程使用JDBC加载ClickHouse和hive驱动问题
  • 点击器自动点击器,让你的屏幕操作变得更加简单