当前位置: 首页 > news >正文

蓝桥杯15届JAVA_A组

将所有1x1转化为2x2 即1x1的方块➗4 然后计算平方数 记得-1 ×2 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;public class Main{static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));public static void main(String[] args) {long a1 = 7385137888721L + (long)10470245L/4;long i;for(i = 1l;i*i<=a1;i++) {}
//		out.println(i*i-7385137888721L);out.println((i-1)*2);out.flush();}
}

 

往简单了想,想不出来就看看小范围内的规律 

 可以先小范围的写1-10观察规律!!

首先一个奇数一定可以写成两项相加的形式,所以奇数一定有诗意 

所以只要一个数有奇数因子那么就有诗意 它可以看作一个奇数✖倍数

这说明了如果一个数没有奇数因子 那么就没有诗意 那么什么数没有奇数因子呢?只能是偶数,而且是特殊的偶数 是2的倍数 才能做到没有一个奇数因子 

所以这一题就转化成了2的整数倍的数没有诗意 那么答案就是数组中2的整数倍的数的个数!!

差分 + 贪心

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;public class Main{static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));static int n;static int[] a; static int[] b;public static void main(String[] args) throws IOException {n = Integer.parseInt(in.readLine());String[] p = in.readLine().split(" ");a = new int[n+1];b = new int[n+1];for(int i=1;i<=n;i++) {a[i] = Integer.parseInt(p[i-1]);}for(int i=1;i<=n/2;i++)b[i] = a[n-i+1] - a[i];int ans = 0;for(int i=1;i<=n/2;i++) {//只转化左边与右边相同即可//只改变a[i]使之相同ans += Math.abs(b[i]);if(b[i]*b[i+1]>0) {//同号 下一个数要操作的次数更多 if(Math.abs(b[i+1])>Math.abs(b[i])) b[i+1]-=b[i];else  i++;//更小的话直接跳过下一个数 结束的时候还会再++一次}}out.println(ans);out.flush();}
}

 

博弈论 线性规划 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.ArrayList;public class Main{static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));static int t;static int N = (int)1e5+6;static ArrayList<Integer> primes = new ArrayList<Integer>();static int[] is_p = new int[N];//0表示是质数 1表示不是质数static int[] sta = new int[N];//0表示先手必输   1表示先手必赢public static void judge_prime(int x) {is_p[0] = 1;is_p[1] = 1;//0和1都不是质数for(int i=2;i<=x;i++) {if(is_p[i]==0)primes.add(i);for(int prime:primes) {if(i*prime>x)break;//这一句一定要加否则会导致数组越界if(is_p[i*prime]==0)is_p[i*prime] = 1;//置为1if(i%prime==0)break;}}}public static boolean judge_index(int x) {return (x>=0&&x<N?true:false);}public static void main(String[] args)throws IOException{t = Integer.parseInt(in.readLine());judge_prime(N-2);//质数或者质数+1 是 先手必赢for(int prime:primes) {sta[prime] = 1;sta[prime+1] = 1;}for(int i=1;i<=1e5;i++) {//对于每一个木头的长度for(int prime:primes) {if(judge_index(i-prime)==false)continue;//不合法范围的话不行if(prime>i)break;if(sta[i-prime]==1)continue;//如果先手砍了一个之后是先手必赢 那么就是先手必输else {//只需要有一个能让先手必赢 那么就可以说这种情况先手必赢sta[i] = 1;break;}}}for(int i=1;i<=t;i++) {int len = Integer.parseInt(in.readLine());out.println(sta[len]);}out.flush();}
}

 


http://www.mrgr.cn/news/96631.html

相关文章:

  • 【QT5 网络编程示例】TCP 通信
  • Kong网关研究
  • 【Unity】记录TMPro使用过程踩的一些坑
  • Spark,上传文件
  • HTML中数字和字母不换行显示
  • 数据结构和算法(十一)--图
  • 去中心化稳定币机制解析与产品策略建议
  • ros2--xacro
  • Python-八股总结
  • 【群智能算法改进】一种改进的蜣螂优化算法IDBO[3](立方混沌映射Cubic、融合鱼鹰勘探策略、混合高斯柯西变异)【Matlab代码#92】
  • 【MVC简介-产生原因、演变历史、核心思想、组成部分、使用场景】
  • 【Pandas】pandas Series to_markdown
  • 六种光耦综合对比——《器件手册--光耦》
  • 十五届蓝桥杯省赛Java B组(持续更新..)
  • ISIS【路由协议讲解】-通俗易懂!
  • 汇编学习之《数据传输指令》
  • Sentinel[超详细讲解]-1
  • JAVASE(十二)常用类(一)Object类
  • HTML实现图片上添加水印的工具
  • 使用大语言模型进行Python图表可视化