蓝桥杯专题-试题版-【分糖果】【矩阵翻硬币】【兰顿蚂蚁】

这篇具有很好参考价值的文章主要介绍了蓝桥杯专题-试题版-【分糖果】【矩阵翻硬币】【兰顿蚂蚁】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 点击跳转专栏=>Unity3D特效百例
  • 点击跳转专栏=>案例项目实战源码
  • 点击跳转专栏=>游戏脚本-辅助自动化
  • 点击跳转专栏=>Android控件全解手册
  • 点击跳转专栏=>Scratch编程案例
  • 点击跳转=>软考全系列
  • 点击跳转=>蓝桥系列

👉关于作者

专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,获取更多支持,交流让学习不再孤单

蓝桥杯专题-试题版-【分糖果】【矩阵翻硬币】【兰顿蚂蚁】

👉实践过程

需要所有整理的文档可底部卡片联系我,直接发压缩包。

😜分糖果

问题描述
  有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:
  每个小朋友都把自己的糖果分一半给左手边的孩子。
  一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。

反复进行这个游戏,直到所有小朋友的糖果数都相同为止。

你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。
输入格式
  程序首先读入一个整数N(2<N<100),表示小朋友的人数。
  接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)
输出格式
  要求程序输出一个整数,表示老师需要补发的糖果数。
样例输入
3
2 2 4
样例输出
4

import java.io.*;
public class Main {
	static int count2;
	static int[] arr;
	static boolean bl;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		String str[] = br.readLine().split(" ");

		arr = new int[n];
		for (int i = 0; i < arr.length; i++)
			arr[i] = Integer.parseInt(str[i]);

		func();
	}

	public static void func() {

		if (ifSame()) {
			System.out.print(count2);
			return;
		}

		ifEven();

		if (ifSame()) {
			System.out.print(count2);
			return;
		}
		int temp = arr[arr.length - 1];
		for (int a = arr.length - 1; a >= 0; a--) {
			if (a > 0) {
				arr[a] = arr[a] / 2 + arr[a - 1] / 2;
			}
			if (a == 0) {
				arr[0] = arr[0] / 2 + temp / 2;
			}
		}
		func();
	}
	public static void ifEven() {
		for (int a = 0; a < arr.length; a++) {
			if (arr[a] % 2 == 0) {
				continue;
			} else {
				arr[a] += 1;
				count2++;
			}
		}
	}
	public static boolean ifSame() {
		int temp = arr[0];
		int count1 = 0;
		for (int a = arr.length - 1; a > 0; a--) {
			if (temp == arr[a]) {
				count1++;
			}
		}
		if (count1 == arr.length - 1) {
			bl = true;
		}
		return bl;
	}
}

😜矩阵翻硬币

小明先把硬币摆成了一个 n 行 m 列的矩阵。
 随后,小明对每一个硬币分别进行一次 Q 操作。
  对第x行第y列的硬币进行 Q 操作的定义:将所有第 ix 行,第 jy 列的硬币进行翻转。
  其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。
  当小明对所有硬币都进行了一次 Q 操作后,他发现了一个奇迹——所有硬币均为正面朝上。
  小明想知道最开始有多少枚硬币是反面朝上的。于是,他向他的好朋友小M寻求帮助。
  聪明的小M告诉小明,只需要对所有硬币再进行一次Q操作,即可恢复到最开始的状态。然而小明很懒,不愿意照做。于是小明希望你给出他更好的方法。帮他计算出答案。
输入格式
  输入数据包含一行,两个正整数 n m,含义见题目描述。
输出格式
  输出一个正整数,表示最开始有多少枚硬币是反面朝上的。
样例输入
2 3
样例输出
1
数据规模和约定
  对于10%的数据,n、m <= 10^3;
  对于20%的数据,n、m <= 10^7;
  对于40%的数据,n、m <= 10^15;
  对于10%的数据,n、m <= 10^1000(10的1000次方)。

import java.math.*;
import java.util.*;
public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		String n = sc.next();
		String m = sc.next();
		BigInteger sum = new BigInteger("1");
		BigInteger bn = new BigInteger(n);
		BigInteger bm = new BigInteger(m);
		bn = kaifang(bn,new BigInteger(bn.toString().substring((int)(n.length()/2))),1);
	bm = kaifang(bm,new BigInteger(bm.toString().substring((int)(m.length()/2))),1);
		sum = sum.multiply(bn).multiply(bm);
		System.out.println(sum);
	}
	private static BigInteger kaifang(BigInteger b,BigInteger bi,int i) {
	if( (bi.multiply(bi).add(b)).divide(bi).divide(new BigInteger("2")).equals(bi) ){
			System.out.println(i);
			return bi;
		}
		else{
			return	kaifang(b,(bi.multiply(bi).add(b)).divide(bi).divide(new BigInteger("2")),i+1 );
		}
	}
}

😜兰顿蚂蚁

蓝桥杯专题-试题版-【分糖果】【矩阵翻硬币】【兰顿蚂蚁】

兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。
  平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。
  蚂蚁的头部朝向为:上下左右其中一方。
  蚂蚁的移动规则十分简单:
  若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格;
  若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。
  规则虽然简单,蚂蚁的行为却十分复杂。刚刚开始时留下的路线都会有接近对称,像是会重复,但不论起始状态如何,蚂蚁经过漫长的混乱活动后,会开辟出一条规则的“高速公路”。
  蚂蚁的路线是很难事先预测的。
  你的任务是根据初始状态,用计算机模拟兰顿蚂蚁在第n步行走后所处的位置。
输入格式
  输入数据的第一行是 m n 两个整数(3 < m, n < 100),表示正方形格子的行数和列数。
  接下来是 m 行数据。
  每行数据为 n 个被空格分开的数字。0 表示白格,1 表示黑格。
  接下来是一行数据:x y s k, 其中x y为整数,表示蚂蚁所在行号和列号(行号从上到下增长,列号从左到右增长,都是从0开始编号)。s 是一个大写字母,表示蚂蚁头的朝向,我们约定:上下左右分别用:UDLR表示。k 表示蚂蚁走的步数。
输出格式
  输出数据为两个空格分开的整数 p q, 分别表示蚂蚁在k步后,所处格子的行号和列号。
样例输入
5 6
0 0 0 0 0 0
0 0 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
2 3 L 5
样例输出
1 3
样例输入
3 3
0 0 0
1 1 1
1 1 1
1 1 U 6
样例输出
0 0

import java.io.*;
public class Main {
	static int n, m;
	static int s, e;
	static char[] chs = { 'L', 'U', 'R', 'D', 'L' };
	static int count = 0;
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String s1[] = br.readLine().split(" ");
		n = Integer.parseInt(s1[0]);
		m = Integer.parseInt(s1[1]);
		int[][] arr = new int[n][m];
		for (int a = 0; a < n; a++) {
			String str[] = br.readLine().split(" ");
			for (int b = 0; b < m; b++) {
				arr[a][b] = Integer.parseInt(str[b]);
			}
		}
		int x, y;
		String s2[] = br.readLine().split(" ");
		x = Integer.parseInt(s2[0]);
		y = Integer.parseInt(s2[1]);
		char dec = s2[2].charAt(0);
		int z;
		z = Integer.parseInt(s2[3]);
		s = x;
		e = y;
		while (count < z) {
			if (arr[s][e] == 1) {
				for (int i = 0; i < chs.length; i++) {
					if (dec == chs[i]) {
						dec = chs[i + 1];
						break;
					}
				}
				arr[s][e] = 0;
				func(dec, s, e);
			}
			if (arr[s][e] == 0) {
				for (int j = 1; j < chs.length; j++) {
					if (dec == chs[j]) {
						dec = chs[j - 1];
						break;
					}
				}
				arr[s][e] = 1;
				func(dec, s, e);
			}
		}
		System.out.print(s + " " + e);
	}
	public static void func(char dec, int x, int y) {
		if (dec == 'L') {
			e -= 1;
			count++;
		}
		if (dec == 'U') {
			s -= 1;
			count++;
		}
		if (dec == 'R') {
			e += 1;
			count++;
		}
		if (dec == 'D') {
			s += 1;
			count++;
		}
	}
}

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
蓝桥杯专题-试题版-【分糖果】【矩阵翻硬币】【兰顿蚂蚁】文章来源地址https://www.toymoban.com/news/detail-514028.html

到了这里,关于蓝桥杯专题-试题版-【分糖果】【矩阵翻硬币】【兰顿蚂蚁】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蓝桥杯专题-试题版-【完美的代价】【芯片测试】【序列求和】【杨辉三角形】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月11日
    浏览(38)
  • 蓝桥杯专题-试题版-【圆的面积】【字符串对比】【字母图形】【核桃的数量】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月12日
    浏览(43)
  • 蓝桥杯专题-试题版-【地宫取宝】【斐波那契】【波动数列】【小朋友排队】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月11日
    浏览(58)
  • 蓝桥杯专题-试题版-【龟兔赛跑预测】【回形取数】【阶乘计算】【矩形面积交】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月11日
    浏览(42)
  • 蓝桥杯专题-试题版含答案-【风险度量】【括号配对问题】【ASCII码排序】【素数求和】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月11日
    浏览(84)
  • 蓝桥杯专题-试题版-【01字符串】【2n皇后问题】【A+B问题】【Fibonacci数列】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月11日
    浏览(43)
  • 中二羊专题:栋栋吃糖果

    栋栋参加比赛拿下了一等奖,老师奖励了很多糖果。 一共有 (m) 种糖果,其中第i种糖果的数量为 (m_i) 。栋栋吃糖时会获得快乐值,并且他喜欢换着口味吃糖。当栋栋吃下第一个糖果时快乐值为 (0) ,接下来,每吃一个不同口味的糖果(与上一个糖不同),快乐值就会增加

    2024年02月04日
    浏览(22)
  • javaScript蓝桥杯----猜硬币

    为了打发无聊的时间,小蓝开发了一款人机对战的猜硬币游戏,页面中一共有 9 个杯子,系统会随机挑选 3 个杯子在里面放入硬币,玩家通过输入含有杯子序号的字符串进行猜选,但是遇到了一些问题。 本题需要你帮助小蓝完成猜硬币游戏。 开始答题前,需要先打开本题的

    2024年02月08日
    浏览(33)
  • [蓝桥杯 2013 省 B] 翻硬币

    小明正在玩一个“翻硬币”的游戏。 桌上放着排成一排的若干硬币。我们用  *  表示正面,用  o  表示反面(是小写字母,不是零),比如可能情形是  **oo***oooo ,如果同时翻转左边的两个硬币,则变为  oooo***oooo 。现在小明的问题是:如果已知了初始状态和要达到的目标

    2024年01月17日
    浏览(39)
  • 蓝桥杯官网练习题(翻硬币)

    题目描述 小明正在玩一个\\\"翻硬币\\\"的游戏。 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。 比如,可能情形是:**oo***oooo; 如果同时翻转左边的两个硬币,则变为:oooo***oooo。 现在小明的问题是:如果已知了初始状态和要达到的目

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包