蓝桥杯冲刺-day02
day2!
AcWing 1208 翻硬币
注意每次都是两个硬币一起反转的,第二个会被强制
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
char[] s1 = sc.next().toCharArray(); //初始状态
char[] s2 = sc.next().toCharArray(); //目标状态
int res = 0;
for(int i=0;i<s1.length-1;i++){
if(s1[i]!=s2[i]){
res ++;
if(s2[i]=='*'){
s1[i]='*';
}else{
s1[i]='o';
}
//一次2个硬币
if(s1[i+1]=='*'){
s1[i+1]='o';
}else{
s1[i+1]='*';
}
}
}
System.out.println(res);
}
}
AcWing 789 数的范围
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] q = new int[n]; //q升序
for(int i=0;i<n;i++) q[i] = sc.nextInt();
while(m-->0){
int x = sc.nextInt();
//1. 找到元素k的起始位置和终止位置(位置从0开始计数)
int l = 0;
int r = n-1;
while(l<r){
int mid = (l + r) >> 1;
if(q[mid]>=x) r = mid;
else l = mid+1;
}
if(q[l]!=x) System.out.println("-1 -1");
else{
System.out.print(l + " ");
l = 0;
r = n-1;
while(l<r){
int mid = (l + r + 1) >> 1;
if(q[mid]<=x) l = mid;
else r = mid -1;
}
System.out.println(l);
}
}
}
}
AcWing 790 数的三次方根
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double num = sc.nextDouble();
double l = num > 0 ? 0 : num;
double r = num > 0 ? num : 0;
while(r - l > 1e-8){
double mid = (l + r)/2;
if(mid*mid*mid>=num) r = mid;
else l = mid;
}
System.out.println(String.format("%.6f", l));
}
}

浙公网安备 33010602011771号