建设行业网站大概需要都少钱,效果图网站无缝连接,东莞 企业 网站制作,php网站开发结构说明专注是不够的#xff0c;很重要的一方面在于细节#xff0c;关注细节#xff1a;精细和专注才是成功的重点#xff01;#xff01;#xff01;
A 题意#xff1a;给你一堆数字#xff0c;说这一堆数字是由最初的两个数字相减得到的#xff0c;让你求出两个数字其中一…专注是不够的很重要的一方面在于细节关注细节精细和专注才是成功的重点
A 题意给你一堆数字说这一堆数字是由最初的两个数字相减得到的让你求出两个数字其中一个特别标明不需要你求另一个数字:
1.怎样做这个题目自己没有思考出来有一部分原因是没有读题读清楚绝对值所有的数字是由最初的两个数字相减的绝对值得到的所以说如果出现了负数那肯定是原来的数字当中一个
如果没有负数全部都是正数最大的肯定是刚开始的一个数字应为最大的数字在进行相减的过程中不会变小
2为什么 首先应该反应出来负数一定是原来的这样我们就能想如果没有负数的情况最大的数字是没有变化的最大的值会一直不变
3下次如何想起来这里可以积累一个基本活动经验如果是绝对值相减产生的新的数字一定是小于最初的最大的数字的不会大于它
4生活联系
5博弈最后三个样例都是有一个负数的情况但是只有一个是负数如果都是负数我们可能就知道答案了这种情况是最不好想的所以我们没有必要就是按照样例来我们可以坚定心中的答案
看别人的代码我们可以不用统计最大的值和最小的值这里可以直接用一个sort #includebits/stdc.h
using namespace std;
int main(){int t;cint;while(t--){int n;cinn; int a[n];for(int i0;in;i) cina[i];sort(a,an);if(a[0]0) couta[n-1]endl;else couta[0]endl;}return 0;
}
B: 题意如何调整排列当中的数字的顺序让排列的排列子序列最少
1怎么做其实排列有非常严格的要求破坏一个数字就不是排列了所以这样来看题目条件没有那么多这个题目的样例过于明显了 1 和 2 应该是位于最大值的两边
2为什么1 2靠着肯定是会多一个的如果用最大值把1和2分开就会减少这个
3下次想起来真希望遇见同类型的题目哈哈哈
4生活联系这个想不起来啥联系如果有日后补充哈哈哈
这个题目的代码确实非常的漂亮通过一个swap,的确把c x 定位成1 或者 2 比较靠前和比较靠后的位置
#includebits/stdc.h
using namespace std;
typedef long long ll;
int main(){ll n,a,c,d,x;cinn;while(cinn){//c 记录的是1在数组当中的位置//d 记录的是n在数组当中的位置//x 记录的是2在数组当中的位置for(int i1;in;i){cina;if(a1)ci;else if(an)di;else if(a2)xi;}//x是1和2位置更加靠后的那个的位置//c是1和2位置更加考前的那个的位置if(cx)swap(c,x);if(xd cd)cout1 1\n;else if(cd)coutd cendl;else if(xd)coutx dendl;}return 0;
}
5博弈论是的这个和一些迷惑性的答案就不一样这个样例解释太明显了应该大胆想象出来
C题意上下左右相邻不可以是素数这样应该怎么弄
1怎样做怎样写代码说做法之前我们先来如何打出这样的代码
3行6列的数字排列 1 2 3 4 5 6 7 8 9
10 11 12
13 14 15
16 17 18
如果说按照上述输出显然很简单两个for循环但是我现在不想这样输出了我想先输出(从1开始)第三行然后输出第一行然后输出第五行然后输出第二行这样奇数偶数行间隔并且先输出奇数行然后输出偶数行如何输出
首先是分支结构if-else-if
if(i % 2 0){}
else{}
所以说i 0 cout: 7 8 9 i 1 cout:1 2 3 i 2 cout:10 11 12 i 3 cout:4 5 6
所以说如果i 1 或者i 3 就是
i / 2* m j 1 如果i 0 或者i 3就是
cout (n / 2 i / 2) * m j 1
至于这里的道理我也不知道为什么但是我需要记住这个东西他就是这样输出的
思路具体怎么做的思路是这样的首先说到非素数第一时间想到的就应该是1最小的素数是2所以如果我们直接按照原始的排列放数字就应该大胆尝试啊如果以后没有好的办法就只能这样尝试如果不尝试不可能有办法做出来的 大胆尝试这样就会发现横着相比之间相差1横着满足要求了但是竖着我们发现相差为m,如果说m是素数那就不符和要求但是素数的倍数一定是符合要求的所以说如果我们隔着输出就符合要求了最少是二倍所以我们就隔着输出二倍的话就是先输出第三行然后输出第一行然后输出第四行然后输出第二行就是我们上述讲到的输出方式
你看其实也不复杂就在于大胆的尝试思考如果不尝试根本不可能想出来刚开始看到非素数感觉好难啊其实一点都不复杂
2.0为什么这里为什么上面已经说清楚了
3以后如何想起来一个是非素数先从1开始其次这样的隔着输出的方法下次就要想到
4和生活联系感觉很经典的输出方式
5.和答案的联系这个答案就没有其他的提示性所以说样例用好了是关键用不好是祸害