目录
一.拼正方形
1.题目

2.思路
首先把1x1的方块转换为2x2的方块,然后算出所有的2x2的方块,只需要对这个值求根即可,因为数据过大,剩余的几个方块可以忽略不计,最后乘以2即可(因为方块边长为2)
3.代码
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println(2717561*2);
scan.close();
}
}
二.劲舞团
1.题目

2.思路
暴力枚举搜索即可,稍微有点麻烦的是数据处理,用一个二维的字符串数组来存储每条记录,在字符相等的前提下,找出时间相差1ms的连续数据的即可,需要注意的是k次正确敲击是k次连击,所以最后的结果需要加1
3.代码
public class text17 {
public static void main(String[] args) {
String[][] s = new String[10000][3];
Scanner scan = new Scanner(System.in);
int i = 0;
while(scan.hasNextLine()){
String p = scan.nextLine();
if(p.isEmpty()) break;
s[i++] = p.split(" ");
}
int max = 0;
int sum = 0;
for(int j = 1;j<2000;j++)
{
long tmp = Long.valueOf(s[j-1][2]);
if(s[j][0].equals(s[j][1]))
{
long temp = Long.valueOf(s[j][2]);
if(temp-tmp<=1000L)
{
sum++;
max = Math.max(sum,max);//这里的max实际上是k-1次连击
continue;
}
}
sum = 0;
}
System.out.println(max+1);
scan.close();
}
}
三.数组诗意
1.题目

2.思路
就是一道思维数学题,只有能找出规律就能写出来,找不到规律暴力求解只能通过30%,向这种大数据范围的数学题一般都有规律,我们先把满足题目要求的解小范围输出看看有没有什么规律,像这道题输出1000以内满足条件的数据就可以看出来只有是2的整数次幂的数字都不满足连续整数相加相等这个条件,所以只需要判断给的数据有多少个是2的整数次幂就可以
注:这里运用到了位运算,因为2的整数次幂的2进制表示只有一个1,x&(x-1)==0就是符合2的整数次幂的条件

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



