【思维题】 Disturbed People

思维题: 题目链接
思路:

会打扰别人的灯满足条件:

1.前一个灯是灭的。

2.前面的第二个灯和现在的灯是开着的。

arr.get(i-1).equals(0)&&arr.get(i).equals(1)&&(!arr.get(i-2).equals(0)))

注意:

如果满足了上述条件,需要把这个灯关掉再进行以后的判断

import java.math.BigInteger;
import java.util.*;
import java.lang.*;
public class Main {
  
  public static void main(String[] args) {
    Scanner cin=new Scanner(System.in);
    int n=cin.nextInt();
    List<Integer> arr=new ArrayList<Integer>();
    for(int i=0;i<n;i++) {
      arr.add(cin.nextInt());
    }
    int ans=0;
    for(int i=2;i<n;i++) {
      if(arr.get(i-1).equals(0)&&arr.get(i).equals(1)&&(!arr.get(i-2).equals(0))){
          arr.set(i, 0);
          ans++;
        }
    }
  System.out.println(ans);
  }	
}

 

 

【数学规律】A、 Frog Jumping

数学规律题: 题目链接

思路:分情况讨论,①跳奇数次s=(n-1)/2*(a-b)+a②跳偶数次s=(n)/2*(a-b)

注意:结果可能很大,用lld或者BigInteger解决

import java.math.BigInteger;
import java.util.Scanner;
import java.util.*;
import java.lang.*;
public class Main {
  
  public static void main(String[] args) {
    Scanner cin=new Scanner(System.in);
    int n=cin.nextInt();
    while(n--!=0)
    {
      int a=cin.nextInt(),b=cin.nextInt(),dis=a-b;
      BigInteger c=cin.nextBigInteger();
      if((c.mod(BigInteger.valueOf(2))).equals(BigInteger.ZERO))
      {
        c=c.divide(BigInteger.valueOf(2));
        System.out.println(c.multiply(BigInteger.valueOf(dis)));
      }
      
      else {
        c=c.subtract(BigInteger.ONE);
        c=c.divide(BigInteger.valueOf(2));
        c=c.multiply(BigInteger.valueOf(dis));
        System.out.println(c.add(BigInteger.valueOf(a)));
      }
      
    
    }
  
  }	
}