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

菏泽做网站建设的公司网站排名在线优化工具

菏泽做网站建设的公司,网站排名在线优化工具,地下城封号做任务网站,广告中国1. 小红的签到题 现在小红希望你写出一个长度为 nnn 的、使用了下划线命名法命名的变量。为了显出特征,请保证该变量至少由两个单词组成。 输入描述: 输入一个正整数 n(3≦n≦100),代表需要构造的变量长度。 输出描述: 输出一个长度为 n 的字符串&#x…

1. 小红的签到题

现在小红希望你写出一个长度为 nnn 的、使用了下划线命名法命名的变量。为了显出特征,请保证该变量至少由两个单词组成。

输入描述:

输入一个正整数 n(3≦n≦100),代表需要构造的变量长度。

输出描述:

输出一个长度为 n 的字符串,代表你所构造的使用了下划线命名法命名的变量。 如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。

示例1

输入

11

输出

kato_megumi

解题思路:根据长度n构造答案

#include<bits/stdc++.h>
using namespace std;
int main(){int n; cin>>n;cout<<"f_"<<string(n-2,'f')<<endl;
}

 2. 小红的模拟题

给定一个 n 行 m 列的网格,我们使用 (i,j) 表示网格中从上往下数第 i 行和从左往右数第 j 列的格子。小红现在位于 (1,1),准备前往 (n,m)。
然而,不是所有的格子都是可以通行的,有且恰有一个格子是陷阱格,一旦小红踏入陷阱格,就会直接去逝。保证这个陷阱格不会出现在 (1,1)和 (n,m)。
小红每一步只能向右或者向下前进。请你帮小红规划一条行动路线,使得她可以顺利到达 (n,m)。
行动路线为一个仅由字符 ‘D’、‘S’ 构成的字符串 s,第 i个字符代表小红第 i 次行动的方向。记第 iii 次行动前小红位于 (x,y),则:
,若si​=‘D’,则小红向右移动一格即抵达 (x,y+1);
,若si​=‘S’,则小红向下移动一格即抵达(x+1,y)。

解题思路:由于陷阱只有一个, 从(1,1) 到 (n,m), 特殊情况一种是往右n-1步, 往下走m-1步, 另一种是往下走m-1步, 往右走n-1步, 陷阱最多只会出现在上述两条路径中的一条之中, 所以依次探测即可 

#include <bits/stdc++.h>
using namespace std;
int main() {int n, m;cin >> n >> m;vector<string> grid(n);for(int i=0;i<n;i++) cin>>grid[i];bool f1=true;for(int i=1;i<n;i++){if(grid[i][0]=='#') f1=false;}for(int j=1;j<m;j++){if(grid[n-1][j]=='#') f1=false;}if(f1){for(int i=1;i<n;i++) cout<<'S';for(int j=1;j<m;j++) cout<<'D';return 0;}bool f2=true;for(int j=1;j<m;j++){if(grid[0][j]=='#') f2=false;}for(int i=1;i<n;i++){if(grid[i][m-1]=='#') f2=false;}if(f2){for(int i=1;i<m;i++) cout<<'D';for(int i=1;i<n;i++) cout<<'S';return 0;}return 0;
}

 3.小红的方神题

题目描述

对于数组 a,我们定义它的退化状态为:取每个相邻两数之差的绝对值构成的新数组。换句话说,退化后的 a 数组是一个长度为len(a)−1 的数组,其第 i 个元素为 ∣ai​−ai+1​∣。
 希望小红构造一个长度为 n 的排列,使得其连续进行n−1 次退化后,最终生成的一个整数恰好等于 n−2。你能帮帮小红吗?如果不存在这样的排列,直接输出 −1 即可。
长度为 n 的排列是由 1,2,…,n 这 n个整数、按任意顺序组成的数组(每个整数均恰好出现一次)。例如,{2,3,1,5,4} 是一个长度为 5 的排列,而 {1,2,2} 和 {1,3,4} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

解题思路: 1/2都不行, n>=3时候, 构造[1,n,n−1,…,2]  相邻差后为:[|1-n|, 1,1,....], 再退化一次为, n-2, 满足题意。

#include <bits/stdc++.h>
using namespace std;
int main(){int n; cin>>n;if(n<=2) { cout<<-1<<endl; return 0; }cout<<1;for(int i=n;i>=2;i--){cout<<" "<<i;}cout<<endl;return 0;
}

4. 小红的数学题 

题目描述

小红拿到了一个正整数 k,她希望你找到两个正整数 p,q,满足 p+q=k,且方程 x^2−px+q=0 存在两个正整数解。特别地,如果不存在这样的 p,q,请输出 −1。

解题思路:设方程的两个根为x1和x2,

x1+x2=p,

x1*x2=q,

x1+x2+x1*x2=k,

x1+x2+x1*x2+1=k+1 

(x1+1)*(x2+1)=k+1

所以, 我们可以将k+1, 分解成两个>=2的数的乘积(a,b)

x1+1=a, x2+1=b, 

p=a+b-2, q=(a-1)*(b-1)

#include <bits/stdc++.h>
using namespace std;
int main(){long long k;cin >> k;long long t = k + 1;long long A = -1, B = -1;for (long long d = 2; d * d <= t; d++) {if (t % d == 0) {A = d;B = t / d;break;}}if (A == -1){cout << -1 << endl;}else{long long p = (A + B - 2);long long q = (A - 1) * (B - 1);cout << p << " " << q << endl;}return 0;
}

 5. 小红的ds题

小红希望你构造一棵层数为 n 的二叉树,其第 i 层恰好有 ai​ 个节点。你能帮帮她吗?
一棵树被称为二叉树,当且仅当其满足:
,∙每个节点要么没有父节点连接(此时该节点被称为根节点)、要么被 1 个父节点连接(此时该节点被称为父节点的子节点;

∙每个节点连接的子节点数量要么为 0(此时该节点被称为叶子节点)、要么小于等于 2(此时该节点被称为分支节点)。

#include <bits/stdc++.h>
using namespace std;
int main() {int n;  cin >> n;vector<int> nums(n);  int total = 0;for (int i = 0; i < n; i++) {cin >> nums[i];total += nums[i];}vector<int> son_cnt(total, 0);     vector<vector<int>> tmp(total);   int start = 0;int pt = nums[0];  for (int i = 1; i < n; i++) {int new_start = pt;while (nums[i]--) {while (son_cnt[start] == 2) {start++;}son_cnt[start]++;tmp[start].push_back(pt);pt++;}start = new_start;}cout << 1 << endl;  for (int i = 0; i < total; i++) {if (tmp[i].empty()) {cout << "-1 -1"<<endl;} else if (tmp[i].size() == 1) {cout << "-1 " << tmp[i][0] + 1 <<endl;} else {cout << tmp[i][0] + 1 << ' ' << tmp[i][1] + 1 << endl;}}return 0;
}

6.小红的小苯题 

题目描述

小苯希望小红构造一个 n 行 m 列的矩阵,满足:
,∙每一行所有元素的异或和、每一列所有元素的异或和,这 n+m 个数恰好构成一个长度为 n+m的排列
∙矩阵中每个元素的值在 0 到 10^9 之间。
你能帮帮小红吗?
长度为 n 的排列是由 1,2,…,n 这 n 个整数、按任意顺序组成的数组(每个整数均恰好出现一次)。例如,{2,3,1,5,4} 是一个长度为 5 的排列,而 {1,2,2} 和 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

解题思路(详细思考过程):

n行m列

设每一行所有元素的异或和分别为R1, R2, R3, .... ,Rn

设每一列所有元素的异或和分别为C1, C2, C3,....Cm

这些 n+m 个行异或和和列异或和合在一起,正好是 1,2,…,n+m 的一个排列

那我们应该怎么构造呢?

我们可以直接让行异或和Ri=i(第 1 行异或和是 1,第 2 行是 2,……,第 n 行是 n)

列异或和 Cj​=n+j(即第 1 列异或和是 n+1,第 2 列是 n+2,……,第 m 列是 n+m)

这个{Ri}U{Cj} ={1,2,3,4,....,n+m}

所有的行异或和R1 xor R2 xor R3 xor...xor Rn应该等于所有列异或和C1 xor C2 xor C3 xor ...xor Cm (因为矩阵的总异或和可以从行或列两个方向计算)

因此, (R1 xor R2 xor R3 xor...xor Rn) xor (C1 xor C2 xor C3 xor ...xor Cm) =0

=> 1 xor 2 xor 3 xor ...xor (n+m)=0

所以, 

只有 1 到 n+m 的异或和为 0 时,才能构造出这样的矩阵

具体构造:

为了简化问题, 

除了最后一列和最后一行,其他位置都填 0

填最后一列(行异或和)

对于前 n−1 行,让它们的最后一列等于行异或和 a[i][m]=Ri =i

(第i行的异或和就是0 xor 0 xor ...i=i)

填最后一行(列异或和)

对于前 m−1 行,让它们的最后一列等于列异或和 a[n][j]=Ci =n+j

(第j列的异或和就是0 xor 0 xor ...(n+j)=n+j)

最后填A[n][m]这个位置, A[n][m]需要同时满足:

1. 第n行的异或和是Rn=n, 2. 第m列的异或和是 Cm=n+m

第 n 行的异或和是 C1 xor C2 xor C3 xor ,,, xor Cm-1 xor t =n

 (n+1) xor (n+2) xor ... xor (n+m-1) xor t=n

所以, t1=n xor (n+1) xor (n+2) xor ... xor (n+m-1) 

同理, 

第m列的异或和是 R1 xor R2 xor R3 xor ... xor Rn-1 xor t

1 xor 2 xor ... xor (n-1) xor t= n+m

所以, t2=(n+m) xor 1 xor 2 xor ... xor (n-1) 

注:t1==t2

最后, 简单说一下代码中各部分的含义

solve函数:计算前k个数的异或和是否等于0

a数组:初始化待构造的数组

然后分别填最后一列的前n-1行, 最后一行的前m-1列

最后填充右下角的元素, 

按t2进行计算

最后输出构造的a数组即可

  1. 性质:1⊕2⊕⋯⊕(n+m)=0。

  2. 构造方法

    • 前 n−1n−1 行的最后一列填 i+1i+1(保证行异或和)

    • 前 m−1m−1 列的最后一行填 n+j+1n+j+1(保证列异或和)

    • 右下角填 T=(n+m)⊕(1⊕2⊕⋯⊕(n−1))T=(n+m)⊕(1⊕2⊕⋯⊕(n−1))。

  3. 输出:直接打印矩阵

#include <bits/stdc++.h>
using namespace std;
int solve(int k) {int ans=0;for(int i=0;i<=k;i++){ans^=i;}return ans;
}
int main(){int n, m;cin >> n >> m;if (solve(n + m) != 0) {cout << -1 << endl;return 0;}vector<vector<long long>> a(n, vector<long long>(m, 0));for (int i = 0; i < n - 1; i++) {a[i][m-1] = i + 1;            }for (int j = 0; j < m - 1; j++) {a[n-1][j] = n + (j + 1);      }long long x = 0;for (int i = 1; i <= n - 1; i++) x ^= i;long long t = (n + m) ^ x;        a[n-1][m-1] = t;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cout << a[i][j] << (j+1<m? ' ' : '\n');}}return 0;
}

感谢大家的点赞和关注,你们的支持是我创作的动力!(有疑问可以发布到评论区)

吐槽:感觉比京津冀某蓝某桥某杯略难吧(想了解可以看我往期题解)

http://www.dtcms.com/wzjs/307757.html

相关文章:

  • 网站空间下载网站推广网络推广
  • 中企动力近期做的网站网站上做推广
  • 网站后台怎么做的长沙seo推广优化
  • 2016企业网站建设合同互动营销的案例有哪些
  • 珠海网站系统建设百度推广充值必须5000吗
  • dw个人网站设计模板免费网站运营方案
  • 有经验的高密网站建设台州seo公司
  • 网页制作网站教程关键词排名推广方法
  • 自适应网站建设哪家好seo提高网站排名
  • 微商自己做网站网站推广搜索
  • 加盟的网站建设免费正能量erp软件下载
  • 动易网站 设置背景图片蜘蛛搜索
  • 自己可以制作图的app免费的重庆seo薪酬水平
  • 凯盛建设公司网站关键词优化软件
  • 商丘做网站广告外链平台
  • 泉州网站建设+推广深圳网络推广代理
  • 绵阳市住房和建设委员会网站长沙企业seo服务
  • python基础知识快排seo
  • 建站百度企业号
  • 贵州市生态文明建设委员会网站百度客服人工电话
  • 做兼职网站哪个靠谱seo搜索价格
  • 做网站是比特币的百度信息流推广技巧
  • 专业直播网站开发简述企业网站如何推广
  • 高端品牌网站建设服务推广软文300字范文
  • 建网站必备软件b站免费版入口
  • 微信公众号网站开发语言自己建网站流程
  • 用.net做的网站长春关键词优化平台
  • 网站建设需要投资多少可以营销的十大产品
  • 做网站的带宽多少钱seo下拉优化
  • 福永专业外贸网站建设公司昆山seo网站优化软件