蓝桥杯真题,求第二空的解析?对一个方阵转置,就是把原来的行号变列号,原来的列号变行号例如,如下的方阵:1 2 3 45
![](images/u2507.png)
蓝桥杯真题,求第二空的解析?
对一个方阵转置,就是把原来的行号变列号,原来的列号变行号
例如,如下的方阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
转置后变为:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
下面的代码实现的功能就是要把一个方阵顺时针旋转.
void rotate(int* x,int rank)
{
int* y = (int*)malloc(___________________); // 填空
for(int i=0; i
对一个方阵转置,就是把原来的行号变列号,原来的列号变行号
例如,如下的方阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
转置后变为:
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
下面的代码实现的功能就是要把一个方阵顺时针旋转.
void rotate(int* x,int rank)
{
int* y = (int*)malloc(___________________); // 填空
for(int i=0; i
已提交,审核后显示!提交回复
共1条回复
贪睡deM 共回答了20个问题
|采纳率90%- 1.sizeof(int)*rank*rank
2.rank-1-i/rank+i%rank*rank
第二空 :首先对矩阵进行转置:x[i]=y[i%rank*rank+1/rank]
之后进行旋转:x[i]=y[rank-1-i%rank+i/rank*rank]
两者嵌套:x[i]=y[rank-1-(i%rank*rank+1/rank)%rank+(i%rank*rank+1/rank)/rank*rank]
可化简为rank-1-i/rank+i%rank*rank - 1年前
相关推荐
- 算法训练 操作格子 用java写 ,蓝桥杯上的一题。请注意别超时!
算法训练 操作格子 用java写 ,蓝桥杯上的一题。请注意别超时!
问题描述
有n个格子,从左到右放成一排,编号为1-n。
共有m次操作,有3种操作类型:
1.修改一个格子的权值,
2.求连续一段格子权值和,
3.求连续一段格子的最大值。
对于每个2、3操作输出你所求出的结果。
输入格式
第一行2个整数n,m。
接下来一行n个整数表示n个格子的初始权值。
接下来m行,每行3个整数p,x,y,p表示操作类型,p=1时表示修改格子x的权值为y,p=2时表示求区间[x,y]内格子权值和,p=3时表示求区间[x,y]内格子最大的权值。
输出格式
有若干行,行数等于p=2或3的操作总数。
每行1个整数,对应了每个p=2或3操作的结果。
样例输入
4 3
1 2 3 4
2 1 3
1 4 3
3 1 4
样例输出
6
3
数据规模与约定
对于20%的数据n桔梗-J1年前1
-
如果世上没有医生 共回答了19个问题
|采纳率94.7%dty@ubuntu:~$ cat Zhidao.java import java.util.*;
public class Zhidao
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
int n=s.nextInt();
int m=s.nextInt();
int a[]=new int[n];
for(int i=0;i{
a[i]=s.nextInt();
}
int p,x,y;
for(int i=0;i{
p=s.nextInt();
x=s.nextInt();
y=s.nextInt();
if(p==1)
{
a[x-1]=y;
}
if(p==2)
{
int sum=0;
for(int j=x-1;jSystem.out.println(sum);
}
if(p==3)
{
int max=a[x-1];
for(int j=x-1;jmax? a[j]:max;
System.out.println(max);
}
}
}
}dty@ubuntu:~$ javac Zhidao.java
dty@ubuntu:~$ java Zhidao
4 3
1 2 3 4
2 1 3
6
1 4 3
3 1 4
3
1年前查看全部
- 2011年蓝桥杯高职,看下面的算式:□□ x □□ = □□ x □□□它表示:两个两位数相乘等于一个两位数乘以一个三位
2011年蓝桥杯高职,
看下面的算式:
□□ x □□ = □□ x □□□
它表示:两个两位数相乘等于一个两位数乘以一个三位数.
如果没有限定条件,这样的例子很多.
但目前的限定是:这9个方块,表示1~9的9个数字,不包含0.
该算式中1至9的每个数字出现且只出现一次!
比如:
46 x 79 = 23 x 158
54 x 69 = 27 x 138
54 x 93 = 27 x 186
.
请编程,输出所有可能的情况!
注意:
左边的两个乘数交换算同一方案,不要重复输出!
不同方案的输出顺序不重要
#include
int check(int a,int b,int c,int d,int e,int f,int g,int h,int i)
{
if((a!=b)&&(a!=c)&&(a!=d)&&(a!=e)&&(a!=f)&&(a!=g)&&(a!=h)&&(a!=i))
{
if((b!=c)&&(b!=d)&&(b!=e)&&(b!=f)&&(b!=g)&&(b!=h)&&(b!=i))
{
if((c!=d)&&(c!=e)&&(c!=f)&&(c!=g)&&(c!=h)&&(c!=i))
{
if((d!=e)&&(d!=f)&&(d!=g)&&(d!=h)&&(d!=i))
{
if((f!=e)&&(f!=g)&&(f!=h)&&(f!=i))
{
if((e!=g)&&(e!=h)&&(e!=i))
{
if((g!=h)&&(g!=i))
{
if(h!=i)
return 1;
}
}
}
}
}
}
}
return 0;
}
void main()
{
//int j=0;
int a,b,c,d,e,f,g,h,i;
//int A[9],B[9],C[9],D[9],E[9],F[9],G[9],H[9],I[9];
for(a=1;aserviceqq1年前1
-
ヽ﹎領銜紸縯 共回答了19个问题
|采纳率100%原来是参加蓝桥的啊.我是本B组的. 【你的问题】1)你循环的时候条件a<=9,b<=9你全部没了=!2)没有判断是否重复,应该用数组记录一下已经存在的两个数交换的情况
你本可以不用这么麻烦的.用四个变量记录数据,一个数组记录出现次数就可以了.你自己的我在给你看,可能需要花一点时间.#include#include #include int main(){int temp;int flag=0; bool shuzi[10]={0}; char a[4]; for(int i=10;i<99;i++) for(int j=0;j<99;j++) for(int k=0;j<99;j++) for(int t=100;t<999;t++) { flag=0; itoa(i,a,10); for(temp=0;temp<=strlen(a);temp++) shuzi[a[temp]-'0']=true; itoa(j,a,10); for(temp=0;temp<=strlen(a);temp++) shuzi[a[temp]-'0']=true; itoa(k,a,10); for(temp=0;temp<=strlen(a);temp++) shuzi[a[temp]-'0']=true; itoa(t,a,10); for(temp=0;temp<=strlen(a);temp++) shuzi[a[temp]-'0']=true; for(temp=1;temp<=9;temp++) if(!a[temp]) { flag=true; break; } if(!flag) printf("%d*%d=%d*%dn",i,j,k,t); flag=0; memset(shuzi,0,sizeof(bool)*10); } return 0;} 1年前查看全部
- 帮忙解答蓝桥杯的一道题?.10. 小朋友排队n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换
帮忙解答蓝桥杯的一道题?
.
10. 小朋友排队
n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。
每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。
如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如
2014 蓝桥杯 C/C++语言本科 B 组预赛试题
15
果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高兴程度增加k。
请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。
解法是求逆序对,但不知道为什么要这么求?
bobbobzhou1年前1
-
**king 共回答了11个问题
|采纳率100%#include
#define SIZE 100
struct data
{
unsigned long height;
unsigned long time;
unsigned long angry;
};
struct data children[SIZE];
struct data temp;
int main()
{
unsigned number=0,total_angry=0;
unsigned i,out,in;//for loop
scanf("%lu",&number);
for(i=0;i1年前查看全部
大家在问
- 1世界上最湿热的地区?A.西欧平原B.恒河平原C.亚马逊平原D.珠江三角洲
- 2计算等差数列{an}{bn}的前n项和分别为An.Bn,且An/Bn=2n/(n+1)求limn→∞(an/bn)
- 3解释下列句中“于”字的词义1受地于先王,愿终受之2请广于君3苍鹰击于殿上4何至于此5十万之众,受制于人6贫者语于富者曰7
- 4ring up加名词可放后吗?如ring you up=ring up
- 5有理数的加减,计算题-40-28-(-19)十(-24)-3分之2十(-6分之1)-(-4分之1)-2分之1-7.2-0
- 6下列藻类植物生活史上出现过原丝体的是
- 7甲、乙两个仓库存粮的总数是40吨,其中甲仓库存粮的1/3与乙仓库的1/4相等,两个仓库各存粮多少吨?
- 8翻译下列句子1.“我的钢笔丢了,我在找”2.他借了我的钢笔,很快就还给我了
- 9下面的算式能应用乘法分配律简算的是? A.3/4*(4/5*1/5) B.4/5*4/5+1/5*1/5 C.4/5*2
- 10一个分数分子和分母的和是55 分子和分母都减5 所得的分数约分后是1/4 求原来这个数
- 11英语翻译请将下列句子翻译为英文(不要用翻译器)(1)我在这里上学已经一年了(2)我交了一个朋友叫玛丽(3)我们将在这个周
- 12生物科学的发展三个阶段时期就是那一年到那一年是第一个…那一年到那一年是第二个…那一年到那一年是第三个…、
- 1375KW电机电流152A距离2000米,要用多少平方的铜导线啊
- 14pep小学英语五年级上册43页答案(详细)
- 15有个人算计算题时弄错了小数点.把答案得数的小数点向右移动了一位,结果比原来的数大18,问正确的答案...