蓝桥杯专题-试题版-【数字游戏】【城市建设】【最大子阵】【蚂蚁感冒】

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

👉关于作者

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

芝麻粒儿-空名先生

👉实践过程

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

😜数字游戏

问题描述
  栋栋正在和同学们玩一个数字游戏。

游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。接下来,坐在栋栋左手边的同学要说下一个数字2。再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4。下一个同学要往下数三个数,说7。依次类推。

为了使数字不至于太大,栋栋和同学们约定,当在心中数到 k-1 时,下一个数字从0开始数。例如,当k=13时,栋栋和同学们报出的前几个数依次为:
  1, 2, 4, 7, 11, 3, 9, 3, 11, 7。

游戏进行了一会儿,栋栋想知道,到目前为止,他所有说出的数字的总和是多少。
输入格式
  输入的第一行包含三个整数 n,k,T,其中 n 和 k 的意义如上面所述,T 表示到目前为止栋栋一共说出的数字个数。
输出格式
  输出一行,包含一个整数,表示栋栋说出所有数的和。
样例输入
3 13 3
样例输出
17
样例说明
  栋栋说出的数依次为1, 7, 9,和为17。
数据规模和约定
  1 < n,k,T < 1,000,000;

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);long n = scan.nextInt();long k = scan.nextInt();long t = scan.nextInt();long sum = 1;long now = 1;long v1 = (1+n)*n/2;long v2 = n*n;for(int i=0;i<t-1;i++){now = (v1+i*v2+now)%k;sum += now;}System.out.println(sum);scan.close();}
}

😜城市建设

问题描述
  栋栋居住在一个繁华的C市中,然而,这个城市的道路大都年久失修。市长准备重新修一些路以方便市民,于是找到了栋栋,希望栋栋能帮助他。

C市中有n个比较重要的地点,市长希望这些地点重点被考虑。现在可以修一些道路来连接其中的一些地点,每条道路可以连接其中的两个地点。另外由于C市有一条河从中穿过,也可以在其中的一些地点建设码头,所有建了码头的地点可以通过河道连接。

栋栋拿到了允许建设的道路的信息,包括每条可以建设的道路的花费,以及哪些地点可以建设码头和建设码头的花费。

市长希望栋栋给出一个方案,使得任意两个地点能只通过新修的路或者河道互达,同时花费尽量小。
输入格式
  输入的第一行包含两个整数n, m,分别表示C市中重要地点的个数和可以建设的道路条数。所有地点从1到n依次编号。
  接下来m行,每行三个整数a, b, c,表示可以建设一条从地点a到地点b的道路,花费为c。若c为正,表示建设是花钱的,如果c为负,则表示建设了道路后还可以赚钱(比如建设收费道路)。
  接下来一行,包含n个整数w_1, w_2, …, w_n。如果w_i为正数,则表示在地点i建设码头的花费,如果w_i为-1,则表示地点i无法建设码头。
  输入保证至少存在一个方法使得任意两个地点能只通过新修的路或者河道互达。
输出格式
  输出一行,包含一个整数,表示使得所有地点通过新修道路或者码头连接的最小花费。如果满足条件的情况下还能赚钱,那么你应该输出一个负数。
样例输入
5 5
1 2 4
1 3 -1
2 3 3
2 4 5
4 5 10
-1 10 10 1 1
样例输出
9
样例说明
  建设第2、3、4条道路,在地点4、5建设码头,总的花费为9。
数据规模和约定
  对于20%的数据,1<=n<=10,1<=m<=20,0<=c<=20,w_i<=20;
  对于50%的数据,1<=n<=100,1<=m<=1000,-50<=c<=50,w_i<=50;
  对于70%的数据,1<=n<=1000;
  对于100%的数据,1 <= n <= 10000,1 <= m <= 100000,-1000<=c<=1000,-1<=w_i<=1000,w_i≠0。

import java.util.*;
public class Main {public static void main(String []arge){Scanner sc = new Scanner(System.in);
int n=Integer.parseInt(sc.next()),m=Integer.parseInt(sc.next());City city = new City(n,m);for(int i=1;i<=m;i++){city.edge[i] = new Edge(Integer.parseInt(sc.next()),Integer.parseInt(sc.next()),Integer.parseInt(sc.next()));}int wharf = 0;for(int i=1;i<=n;i++){int num = Integer.parseInt(sc.next());if(num!=-1){wharf++;city.edge[m+wharf] = new Edge(0,i,num);}}city.wharf = wharf;city.tree();sc.close();}}class Edge{int start,destination,value;Edge(int start,int destination,int value){this.start = start;this.destination = destination;this.value = value;}
}class City{Edge[] edge;int n,m,wharf;int[] father;City(int n,int m){this.n = n;this.m = m;wharf = 0;edge = new Edge[m+n+1];father = new int[n+1];}void tree(){init();for(int i=1;i<=m;i++){int a = unionsearch(edge[i].start);int b = unionsearch(edge[i].destination);if(a!=b){father[a] = b;}}int i;for(i=2;i<=n;i++){if(unionsearch(1)!=unionsearch(i)){break;}}init();QuickSort(1,m+wharf+1);if(i==n+1){int sum1 = kruskal(false);init();int sum2 = kruskal(true);System.out.println(sum1<sum2 ? sum1:sum2);}else{System.out.println(kruskal(true));}}int kruskal(boolean flag){int sum = 0;int num = m+wharf;for(int i=1;i<=num;i++){if(edge[i].start==0 && flag==false) continue;int a = unionsearch(edge[i].start);int b = unionsearch(edge[i].destination);if(a!=b || edge[i].value<0){sum += edge[i].value;father[a] = b;}}return sum;}void init(){for(int i=0;i<=n;i++){father[i] = i;}}int unionsearch(int x){if(x == father[x]) return x;father[x] = unionsearch(father[x]);return father[x];}void QuickSort(int left,int right){if(left<right){int middle = Partition(left,right);QuickSort(left,middle);QuickSort(middle+1,right);}}int Partition(int left,int right){Edge key = edge[left];int i = left;for(int j=left+1;j<right;j++){if(edge[j].value < key.value){i++;Edge news = edge[j];edge[j] = edge[i];edge[i] = news;}}Edge news = edge[i];edge[i] = edge[left];edge[left] = news;return i;}
}

😜最大子阵

问题描述
  给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大。

其中,A的子矩阵指在A中行和列均连续的一块。
输入格式
  输入的第一行包含两个整数n, m,分别表示矩阵A的行数和列数。
  接下来n行,每行m个整数,表示矩阵A。
输出格式
  输出一行,包含一个整数,表示A中最大的子矩阵中的元素和。
样例输入
3 3
-1 -4 3
3 4 -1
-5 -2 8
样例输出
10
样例说明
  取最后一列,和为10。
数据规模和约定
  对于50%的数据,1<=n, m<=50;
  对于100%的数据,1<=n, m<=500,A中每个元素的绝对值不超过5000。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {public static void main(String[] args) throws IOException {BufferedReader sc=new BufferedReader(new InputStreamReader(System.in));String[] s = sc.readLine().split(" ");int n = Integer.parseInt(s[0]);int m = Integer.parseInt(s[1]);int[][] f = new int[n][m];for (int i = 0; i < n; i++) {s = sc.readLine().split(" ");for (int j = 0; j < m; j++) {f[i][j] = Integer.parseInt(s[j]);}}System.out.print(cc(f));}static int csum(int[] s) {int b = 0;int max = Integer.MIN_VALUE;for (int i = 0; i < s.length; i++) {if (b > 0)b += s[i];elseb = s[i];if (b > max)max = b;}return max;}static int cc(int[][] s) {int[] c = new int[s[0].length];int max = Integer.MIN_VALUE;int n = s.length, m = s[0].length;for (int i = 0; i < n; i++) {for (int k = 0; k < m; k++) {c[k] = 0;}for (int j = i; j < n; j++) {for (int k = 0; k < m; k++) {c[k] += s[j][k];}int d = csum(c);if (d > max)max = d;}}return max;}
}

😜蚂蚁感冒

问题描述
  长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。

每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。

当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。

这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。

请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。
输入格式
  第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。

接着的一行是n个用空格分开的整数 Xi (-100 < Xi < 100), Xi的绝对值,表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,负值表示头朝左,数据中不会出现0值,也不会出现两只蚂蚁占用同一位置。其中,第一个数据代表的蚂蚁感冒了。
输出格式
  要求输出1个整数,表示最后感冒蚂蚁的数目。
样例输入
3
5 -2 8
样例输出
1
样例输入
5
-10 8 -20 12 25
样例输出
3

import java.util.*;
public class Main{public static void main(String args[]){Scanner sc=new Scanner(System.in);int n=sc.nextInt();int a[]=new int[n+1];int b[]=new int[n+1];for(int i=1;i<=n;i++){a[i]=sc.nextInt();if(a[i]<0)b[i]=0;else {b[i]=1;}}int k=a[1]>0?1:0;int x=0,y=0,q=0,w=0;for(int i=2;i<=n;i++){
if(Math.abs(a[1])<Math.abs(a[i])&&a[1]>0&&b[i]==0)x++;
if(Math.abs(a[1])>Math.abs(a[i])&&a[1]<0&&b[i]==1)y++;
if(Math.abs(a[1])>Math.abs(a[i])&&a[1]>0&&b[i]==1)q++;
if(Math.abs(a[1])<Math.abs(a[i])&&a[1]<0&&b[i]==0)w++;}if(k==1)if(x!=0)System.out.println(x+q+1);elseSystem.out.println(1);else {if(y!=0)System.out.println(y+w+1);else {System.out.println(1);}}}}

👉其他

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

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生


http://www.ppmy.cn/news/629628.html

相关文章

Win7系统看网页视频没声音怎么办

Win7系统本地播放器听歌看电影都有声音但是它播放土豆网、优酷、Yo等网站的flash&#xff0c;还有在线电影中的RMVB、WMV视频时没有声音&#xff0c;网页中的音乐也一样听不了。播放硬盘上的视频、音乐、FLASH动画则可以听到声音。可以产断定这和驱动应该没有什么关系。重装驱动…

android WebView加载视频只有声音没有画面

AndroidManifest中application节点是否有此配置 android:hardwareAccelerated"false" 若有&#xff0c;在WebView对应的Activity添加 android:hardwareAccelerated"true" 确保webview所在activity开启硬件加速。 开启硬件加速会占用更多内存&#xff…

电脑看网页视频没声音, 其他的都有声音

开始/运行/输入"regedit",打开注册表定位到 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32] 在右侧新建字符串值"wavemapper",数值数据为"msacm32.drv"&#xff08;如果有了就不需在建了&#xff0c;如果没有设置…

Xbox录屏功能录制没声音的解决办法

很多用户都会在xbox游戏平台中玩各种游戏&#xff0c;并且录制各种视频&#xff0c;使用xbox录制视频的过程中出现录制没有声音&#xff0c;这是怎么回事呢&#xff1f;下面小编就来介绍一下xbox录屏功能录制没声音的解决办法。 Win10 Xbox录屏功能录制没声音解决办法 1、请看一…

JavaScript建造者模式:构建复杂对象的利器

JavaScript建造者模式 JavaScript建造者模式是一种创建对象的设计模式&#xff0c;它可以帮助我们构建复杂的对象&#xff0c;同时保持代码的可读性和可维护性。在本文中&#xff0c;我们将介绍JavaScript建造者模式的基本概念和使用方法&#xff0c;并通过一个实际的例子来说…

将视频作为网站背景html,将视频作为网页背景

一些门户网站采用视频作为网页背景,具有很好的展示效果,而随着HTML5技术的发展和浏览器支持程序的提升,采用视频作为网页背景也变得越来越容易。 技术分析 CSS里的background-image属性只能使用图片、SVG、颜色或渐变色。但从技术讲,我们是可以伪造出一种效果,让视频以背景…

电脑视频有背景音乐,但没有人的声音

单击右键 找到音频设备 点击 之后 看到这个扬声器 单击右键 点击属性 进入这个页面 点击级别 点击 这样设置 就可以了

Ubuntu16.04无声音问题解决及网页视频无法播放问题解决

最新解决方案&#xff1a; sudo apt-get remove --purge alsa-base pulseaudiosudo apt-get install alsa-base pulseaudio pavucontrolsudo alsa force-reloadsudo apt-get install pavucontrol重启 sudo apt-get install pavucontrol接着在终端输入 pavucontrol 进行设置即可…