2020-2021年度第二届全国大学生算法设计与编程挑战赛(冬季赛)——正式赛(代码片段)

nuist__NJUPT nuist__NJUPT     2022-12-02     742

关键词:

目录

A题-塔

B题-日记

E题-神仙爱采药

I题-奇怪的传输机增加了

J题-奇怪的小鸭子也增加了

K题-关于哥俩好的数字数字这件事


A题-塔

思路:签到题,26层,第i层先打印26-i个空格,然后正序和逆序打印字符,每一层换一行。

public class Main 
    public static void main(String[] args) 
        for(int i=1; i<=26; i++)
            for(int j=1; j<=26-i; j++)
                System.out.print(" ");
            
            for(int k=1; k<=i; k++)
                System.out.print( (char)(k + 'A'- 1));
            
            for(int l=i-1; l>=1; l--)
                System.out.print( (char)(l + 'A' - 1));
            
            System.out.println();
        
    

B题-日记

思路:每次遇到相应的字母,就调3个,把相应的去掉就可以,测试用例应该有问题。 

public class Main 
    public static void main(String[] args) 
        String s = "smrt cvrst aebteibtiou aa btbtbtbtpapaprpopalbtlapabba\\n" +
                "bas jebte dosadnbtna ova kbtkebtemibtija aszxdbtddbtddbtddbtddbtddbtddbtddbtddbtbba\\n" +
                "aszxdbtddbtddbtddbtddbtddbtddbtddbtddbtdcsc\\n" +
                "bas jebte dosadnbtna ova kbtkebtemibtija\\n" +
                "ibti lbtlovebte lbtlibtinbtnkbtkebtec\\n" +
                "sadnbtna ova kbtkebtemibtija aszxdbtddbtddbtddbtddbtddbtddbtddbtddbtbbz\\n" +
                "aszxdbtddbtddbtddbtddbtddbtddbtddbtddbtdcs\\n" +
                "bas jebte dosadnbtna ova kbtkebtemibtija" ;

        String ans = "" ;
        for(int i=0; i<s.length(); i++)
            char c = s.charAt(i) ;
            ans += c ;

            if(c=='l' || c=='i' || c=='n' || c=='k' || c=='e')
                    i += 3 ;
            
        
        System.out.print(ans);
    

E题-神仙爱采药

 思路:简单贪心,如果体积够用,有多少装多少,如果体积不够用,遇到体积为2的不用管,遇到体积为1的,将体积为2的踢出去,将体积为1的装进去,保证可以装的更多。

import java.util.Scanner;

public class Main 
    public static void main(String[] args) 
        Scanner input = new Scanner(System.in) ;
        int V = input.nextInt() ;
        String s = input.next() ;

        long ans = 0,  volume=0, height=0, num2=0 ;

        for(int i=0; i<s.length(); i++)
            long c = s.charAt(i) - '0' ;
            if(volume+c<=V)
                if(c==2)
                    num2 ++ ;
                
                volume += c ;
                height ++ ;
            else
                if(num2>=1 && c==1)
                    volume -- ;
                    num2 -- ;
                
            
            ans += height ;
        
        System.out.println(ans);
    

这样写也是可以的,变量少一点,思路都是一样的。

import java.util.Scanner;

public class Main 
    public static void main(String[] args) 
        Scanner input = new Scanner(System.in) ;
        int V = input.nextInt() ;
        String s = input.next() ;
        long ans = 0, sum = 0, num2=0;

        for(int i=0; i<s.length(); i++)
            if(s.charAt(i)=='1' && V>=1)
                ans ++ ;
                V -- ;
            else if(s.charAt(i)=='1' && V<1)
                if(num2>0)
                    num2-- ;
                    V ++ ;
                
            
            if(s.charAt(i)=='2' && V>=2)
                ans ++ ;
                V -= 2 ;
                num2 ++ ;
            
            sum += ans ;
        

        System.out.println(sum);
    

I题-奇怪的传输机增加了

 思路:模拟每一天就可以,注意超过x天只能恢复一次,且最后打印的是YE5!和N0!不是YES!和NO!


import java.util.Scanner;

public class Main 
    public static void main(String[] args) 
        Scanner input = new Scanner(System.in) ;
        int N = input.nextInt() ;
        int x = input.nextInt() ;
        int y = input.nextInt() ;
        double now = N ;
        boolean flag = true ;

        for(int i=1; i<=y; i++)
          now = 2.0 * now / 3.0 ;
          if(i>=x)
              now = Math.min(now+(1.0*N/2), N) ;
              x = Integer.MAX_VALUE ;
           
          if(now<1.0*N/32)
              System.out.println("N0!");
              System.out.print(i + " ");
              System.out.printf("%.6f", now);
              flag = false ;
              break ;
          
        
        if(flag)
            System.out.println("YE5!");
            System.out.printf("%.6f", now);
        

    

J题-奇怪的小鸭子也增加了

 思想:数学题,说真话,题目描述的一言难尽。


import java.util.Scanner;

public class Main 
    public static void main(String[] args) 
        Scanner input = new Scanner(System.in) ;
        int A = input.nextInt() ;
        int B = input.nextInt() ;
        int a = input.nextInt() ;
        int b = input.nextInt() ;

        int x = (A-a)/a/2 + 1 ;
        int y = (B-b)/b/2 + 1 ;

        System.out.println(x*y);
    

K题-关于哥俩好的数字数字这件事

同样的代码,C++不超时,Java超时!!! 

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main 
    static final int N = 1000000;
    public static void main(String[] args) 
        Scanner input = new Scanner(System.in) ;
        int n = input.nextInt() ;
        List<List<Integer>> ans1 = new ArrayList<>() ;
        for(int i=0; i<N; i++)
            ans1.add(new ArrayList<>()) ;
        
        for(int i=1; i<=10000000; i++)
             ans1.get(get(i)).add(i) ; ;
        
        if(n==1)
            System.out.println(1);
        else if(n<=10)
            long res = 0 ;
            for(int i=0; i<n; i++)
                res += ans1.get(n-1).get(i) ;
            
            System.out.println(res);
        else if(n>=11)
            long res1 = Long.MAX_VALUE ;
            for(int j=9; j<=20; j++)
                long temp = 0 ;
                for(int i=0; i<n; i++)
                    temp += ans1.get(j).get(i) ;
                
                res1 = Math.min(temp, res1) ;
            
            System.out.println(res1);
        
    
    private static int get(int i)
        int ans = 0 ;
        while(i>0)
            ans += i % 10 ;
            i /= 10 ;
        
        return  ans ;
    

2021-2022年度第三届全国大学生算法设计与编程挑战赛(冬季赛)-正式赛部分题解(代码片段)

比赛链接http://oj.saikr.com/contest/19B.Error思路这道题其实我们贪心加上二分就能做了,首先我们贪心得把b[1]b[1]b[1]变得很小,然后构造b[i]b[i]b[i]的时候也是贪心的去构造,尽可能比b[i−1]b[i-1]b[i−1]大1,如果不行的话... 查看详情

2021-2022年度第三届全国大学生算法设计与编程挑战赛(冬季赛正式赛)部分题题解(代码片段)

现在才补,唉打的很烂。前期还好1个小时过了5题感觉要金了,结果后面就再也没过了。7题金,6题银,5题铜。又是一个铜首。还是菜,感觉有机会拿金的。但是有些题确实我的掌握还是不熟。求期望的那道题... 查看详情

2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)-占座位(最小割)(代码片段)

题目大意:给出一个n∗mn*mn∗m的矩阵,每个格子都有两个权值aaa和bbb,分别代表花费和收益。一个格子被占,当且仅当:格子上有人格子的上下左右都有人格子被占可以获得收益bbb,格子上有人需要花费aa... 查看详情

2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)-占座位(最小割)(代码片段)

题目大意:给出一个n∗mn*mn∗m的矩阵,每个格子都有两个权值aaa和bbb,分别代表花费和收益。一个格子被占,当且仅当:格子上有人格子的上下左右都有人格子被占可以获得收益bbb,格子上有人需要花费aa... 查看详情

2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)-分组(矩阵快速幂套ntt优化dp)(代码片段)

题目链接:点击查看题目大意:给出nnn个连续的小球,每次可以选择单独的一个或者相邻的两个小球分成一组,允许有剩余的小球,问恰好分成k∈1,2,3,⋯ ,mk\\in\\1,2,3,\\cdots,m\\k∈1,2,3,⋯,m组的方案数分别是多... 查看详情

2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)-分组(矩阵快速幂套ntt优化dp)(代码片段)

题目链接:点击查看题目大意:给出nnn个连续的小球,每次可以选择单独的一个或者相邻的两个小球分成一组,允许有剩余的小球,问恰好分成k∈1,2,3,⋯ ,mk\\in\\1,2,3,\\cdots,m\\k∈1,2,3,⋯,m组的方案数分别是多... 查看详情

2021-2022年度第三届全国大学生算法设计与编程挑战赛(冬季赛正式赛)部分题题解(代码片段)

现在才补,唉打的很烂。前期还好1个小时过了5题感觉要金了,结果后面就再也没过了。7题金,6题银,5题铜。又是一个铜首。还是菜,感觉有机会拿金的。但是有些题确实我的掌握还是不熟。求期望的那道题... 查看详情

2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)-分组(矩阵快速幂套ntt优化dp)(代码片段)

题目链接:点击查看题目大意:给出nnn个连续的小球,每次可以选择单独的一个或者相邻的两个小球分成一组,允许有剩余的小球,问恰好分成k∈1,2,3,⋯ ,mk\\in\\1,2,3,\\cdots,m\\k∈1,2,3,⋯,m组的方案数分别是多... 查看详情

2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)-占座位(最小割)(代码片段)

题目大意:给出一个n∗mn*mn∗m的矩阵,每个格子都有两个权值aaa和bbb,分别代表花费和收益。一个格子被占,当且仅当:格子上有人格子的上下左右都有人格子被占可以获得收益bbb,格子上有人需要花费aa... 查看详情

上海理工大学第二届“联想杯”全国程序设计邀请赛题解(代码片段)

上海理工大学第二届“联想杯”全国程序设计邀请赛比赛链接A.A-SOUL!题意:给出n个数,与公差d。问将n个数重新排列后最长的等差数列的长度是多少。思路:从小到大排序后用map记录并维护当前数结尾的等差数列长度。#include<... 查看详情

第二届全国中医药院校大学生程序设计竞赛(代码片段)

目录A篮球队选拔B黑暗意志C调酒壶里的酸奶D过分的谜题E不存在的泳池Ffps游戏G流连人间的苏苏H路哥从不低头(还没有写)I闪闪发光J小C的数学问题K周期串plusLTCMPC进阶之路A篮球队选拔云南中医学院坐落于风景秀丽、四季如春的—... 查看详情

计算机研究生可以参加哪些比赛?

...1弱监督目标定位赛道冠军CVPR2021弱监督语义分割赛道季军第二届全国大学生算法设计与编程挑战赛CVPR2021不完备数据竞赛弱监督目标定位项目冠军CVPR2021不完备数据竞赛弱监督语义分割项目季军第七届中国国际“互联网+”大学... 查看详情

第三届全国大学生算法设计与编程挑战赛个人银首——>金奖(代码片段)

话说每次都是周末一大早吗,前一晚嗨了,第二天就起迟了,本来以为罚时令我与金擦肩而过~但11月2号下午查重后的获奖名单,检索自己的名字,居然变成了金奖(意外,有点惊喜),看来有... 查看详情

第十七届全国大学生智能车竞赛航天智慧物流创意组-第二次线上技术培训(代码片段)

   全国大学生智能汽车竞赛-航天智慧物流创意组,以工业智慧物流为主题,以无人驾驶技术在工业上的应用为基础,围绕人工智能领域典型传感器的使用、操作、编程、调试等内容,考察选手对当下热门的运... 查看详情

全国大学生电子设计竞赛

今天给大家介绍一下全国电子设计竞赛全国电子设计竞赛是什么样的比赛?竞赛水准在哪里?相信大部分同学有这样的疑问。下面我就简要给各位介绍一下电赛。说到电赛就就不得不说517,有些人会问517是什么?各位都知道机器... 查看详情

植保飞行器(g题)--2021年全国大学生电子设计竞赛

植保飞行器(G题)--2021年全国大学生电子设计竞赛 查看详情

2021年全国大学生电子设计竞赛实施过程说明

2021年全国大学生电子设计竞赛实施过程说明文章目录2021年全国大学生电子设计竞赛实施过程说明一、竞赛组织与规则1.学校组织2.参赛报名3.竞赛组织方式4.巡视员选派及其职责5.公布竞赛器件仪器清单6... 查看详情

2021年全国大学生电子设计竞赛实施过程说明

2021年全国大学生电子设计竞赛实施过程说明文章目录2021年全国大学生电子设计竞赛实施过程说明一、竞赛组织与规则1.学校组织2.参赛报名3.竞赛组织方式4.巡视员选派及其职责5.公布竞赛器件仪器清单6... 查看详情