L. 恭喜edg夺得S11冠军 纯属签到题 细致一点就好了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #include <stdio.h> int main () {printf ("EDGNBEDGNBEDGNBEDGNBEDGNBEDGNBEDGNB\n" );printf ("EDGNBEDGNBEDGNBEDGNBEDGNBEDGNBEDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf (" EDGNB\n" );printf ("EDGNB" );return 0 ;}
A. 阳阳姐的魔力数 描述 对于我们的出色的冒险者阳阳姐来说,魔力数对他有奇特的作用,能在战斗中助他一臂之力,所以他知道的魔力数越多越好,但是令他头疼的是,他不知道范围NN 之内的自然数有多少个魔力数,于是他向你求助,你能帮帮他吗。 一个自然数 有魔力,当且仅当这个自然数数可以由两个相同的自然数 拼接起来,比如”2020”这个数字就是由两个”20”拼接而成,但是”2002”却不是魔力数,因为”20”和”02”是两个不同的数字。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 import java.util.*;class Main { public static void main (String[] args) { Scanner scan = new Scanner(System.in); long n = scan.nextLong(); long sum =0 ; String s = n+"" ; String[] str = {"9" ,"99" ,"999" ,"9999" ,"99999" ,"999999" ,"9999999" ,"99999999" ,"999999999" ,"9999999999" }; int m = s.length(); int k = m/2 ; if (n<100 ){ if (n<11 ) System.out.print(0 ); else if (n<22 ) System.out.print(1 ); else if (n<33 ) System.out.print(2 ); else if (n<44 ) System.out.print(3 ); else if (n<55 ) System.out.print(4 ); else if (n<66 ) System.out.print(5 ); else if (n<77 ) System.out.print(6 ); else if (n<88 ) System.out.print(7 ); else if (n<99 ) System.out.print(8 ); else if (n==99 ) System.out.print(9 ); } else { if (m%2 ==1 ) { System.out.print(str[k-1 ]); } else { String string ="" ; String string1 ="" ; for (int i = 0 ,j=k;i < k;i++,j++) { String t = s.charAt(i)+"" ; String t1 = s.charAt(j)+"" ; string = string+t; string1 = string1+t1; } int a = Integer.parseInt(string); int b = Integer.parseInt(string1); if (a<=b) {int q = (int ) (Integer.parseInt(string)-Math.pow(10 ,(m/2 )-1 )+1 ); int p = Integer.parseInt(str[(m/2 )-2 ]); System.out.print(q+p);} else { int q = (int ) (Integer.parseInt(string)-Math.pow(10 , (m/2 )-1 )); int p = Integer.parseInt(str[(m/2 )-2 ]); System.out.print(q+p); } } } } }
这题有着更好的方法 纯数学题 我直接吧所有情况考虑上了
奇数位的时候为固定数 不满足魔力数
偶数为为前一半的值本身或者减一 看前面一半和后面一半谁大
Yuuki非常喜欢玩APEX,一天不玩就浑身难受,可是为了通过考试,他不得不将部分时间花在学习上来维持段位和分数的平衡
给定一个字符串s,字符串s只由字符a和字符b组成,其中a代表Yuuki那天玩APEX,b代表学习
因为Yuuki非常喜欢1010这个数字,所以他规定:在连续的十天之内,玩游戏和学习的天数必须一致
是否存在连续1010天的区间[l,r][l ,r ],即r-l+1=10r −l +1=10。 使得Yuuki游戏和学习的天数一样多。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.util.*;class Main { public static void main (String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); String s = scan.next(); if (n < 10 ){ System.out.print("Yuuki is unhappy" );} else { int l = 0 ,r=10 ; while (r <=n) { int p=0 ,q=0 ; for (;l<r;l++){ if (s.charAt(l)=='a' ) p++; else q++; } if (p==5 &&q==5 ) {System.out.println(r-9 +" " +r); break ;} else { r++; l = r-10 ; } } if (r > n) System.out.print("Yuuki is unhappy" ); } } }
这题卡回车
卡了半个小时 挺恶心的 。。。。
G. nero想出勤 描述 又是阳光明媚的一天,看着这么好的天气,nero想要出勤。
但是nero一个人出勤很无聊,于是拉着lock一起出勤。
他们俩一起走到了出发的起点,由于nero觉得慢慢走路很无聊,所以nero想到了一个主意,就是两个人轮流决定前进的方向,nero希望能够上下走,而lock希望能够左右走。
每一回合他们会根据上述的规则决定前进的方向,然后朝着决定的方向前进一步。
由于他们俩都有选择困难症,不知道谁优先决定前进的方向,于是他们把这个困难的任务交给了你,你可以任意选择谁优先 ,希望你能够告诉他们能否从起点到达出勤的目的地,如果能,请求出所需要的最小步数。
输入 第一行输入一个整数 t(1\leq t \leq 10^5)t (1≤t ≤105),代表tt 组样例,每组样例有两行输入。
对于每一组样例:
第一行输入两个整数sys**y 和sx(-10^9\leq sx,sy\leq 10^9)s**x (−109≤s**x ,s**y ≤109),分别代表起点的纵坐标sys**y 和起点的横坐标sxs**x 。
第二行输入两个整数eye**y 和ex(-10^9\leq ex,ey\leq 10^9)e**x (−109≤e**x ,e**y ≤109),分别代表终点的纵坐标eye**y 和起点的横坐标exe**x 。
输出 对于每一组样例:
第一行输出能否到达目的地。
如果能,输出”YES”(不包含引号),否则输出”NO“(不包含引号)。
如果能够到达目的地,在第二行输出所需的最小步数,定义每一步为坐标加一或者减一。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.util.*;class Main { public static void main (String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); long []arr = new long [2 ]; long []arr2 = new long [2 ]; for (int i = 0 ;i < n;i++) { arr[0 ] = scan.nextLong(); arr[1 ] = scan.nextLong(); arr2[0 ] = scan.nextLong(); arr2[1 ] = scan.nextLong(); long x = Math.abs(arr[0 ]-arr2[0 ]); long y = Math.abs(arr[1 ]-arr2[1 ]); long z = Math.min(x, y); long sum = z*2 ; long p = Math.max(x,y); p = p-z; if (p%2 ==0 ) sum = sum + p*2 ; else sum = sum +(p*2 )-1 ; System.out.println("YES" ); System.out.println(sum); } } }
单纯的模拟题 只是这里就需要回车了 卡的我头大了
K. 樊学长的馈赠 描述 fzx学长是一位非常厉害的老学长,他在备战考研时依旧挂念着我们的小萌新们,于是他特意给大家出了一道有意思的题目: 在茫茫大海中有n 座独立的岛屿,岛上生活着一些淳朴善良的村民。 但是有一天,大海上出现了一群可怕的海盗,海盗们虽然不敢直接攻击岛屿,但是会在海上等待他们出来捕鱼,然后趁机袭击他们。 村民们为了抵御海盗,决定与其他岛屿结成攻守同盟,现在你需要为他们规划航线,使得n 个岛屿形成一个整体(从任意一个岛屿出发,都能到达其他的n-1个岛屿)。 但是由于村民们没有接受过现代化的教育,所以他们看不懂你画的航线图,所以你只能告诉他们要设立一些航线,村民们会随机选择两个之前没有建立过航线的岛屿 ,在两个岛屿之间建立一条航线。 但是设立航线也是很麻烦的事情,为了尽快组成同盟抵御海盗,你需要找到一个最小的航线数量m ,确保n 个岛屿一定能 形成一个整体。 ***注意:一条航线可以看作连接两个岛屿**u**和*v*的一条边,相同的两个岛屿之间不会有重复的航线,同时也不会有岛屿规划到自己本身的航线*
输入 第一行输入一个整数t(t\leq 5 \times 10^5)t (t ≤5×105),代表有tt 个样例。 每组样例有一行,输入一个整数n(1 < n \leq 10^9)n (1<n ≤109),代表有nn 个独立的岛屿。
输出 每个样例输出一行,一行包含一个正整数mm 代表生成的航线数量。
样例 输入复制
输出复制
输入复制
输出复制
输入复制
输出复制
这题看题目根本没用 直接撸样例 还是能够通过65536和2147385346
后者的位数是前者的两倍
32751是65536差不多1/2
经过观察 是(n-1)*(n-2)/2+1;
不过可惜的是赛后几分钟想出来了
不过结果还行 二等奖 不过A了这题的话就是第一名了
不过刷了二个月力扣还算不错的回馈