赞
踩
【数列描述】
有一个数列a[N] (N=60),从a[0]开始,每一项都是一个数字。数列中a[n+1]都是a[n]的描述。其中a[0]=1。
规则如下:
a[0]:1
a[1]:11(含义:其前一项a[0]=1是1个1,即“11”。表示a[0]从左到右,连续出现了1次“1”)
a[2]:21(含义:其前一项a[1]=11,从左到右:是由两个1组成,即“21”。表示a[1]从左到右,连续出现了两次“1”)
a[3]:1211(含义:其前一项a[2]=21,从左到右:是由一个2和一个1组成,即“1211”。表示a[2]从左到右,连续出现了1次“2”,然后又连续出现了1次“1”)
a[4]:111221(含义:其前一项a[3]=1211,从左到右:是由一个1、一个2、两个1组成,即“111221”。表示a[3]从左到右,连续出现了1次“1”,连续出现了1次“2”,连续出现了两次“1”)
请输出这个数列的第n项结果(a[n],0≤n≤59)。
输入描述
数列的第n项(0≤n≤59)
用例
输入:4
输出:11121
let data=4 markNum(data) function markNum(data){ let content='1' if(data==0) {//等于0时直接打印content console.log(content) return } for(let i=1;i<=data;i++){ let next='' //描述 let chars=content.split('') let last=chars[0] let count=1 //记录chars中相同字符的个数 for(let j=1;j<chars.length;j++){ if(chars[j]===last){ count++ }else{ next+=count+last count=1 last=chars[j] } } next +=count+last content=next } console.log(content,"content") // 111221 }
【拔河比赛】
1、按照身高优先、体重次优先的方式准备阵容
2、按规定参照对手派出十名对手
输入描述
1、n,m n代表身高,m代表体重
具体的不太记得了。。。
用例输入:
输入:n m
182 70
183 70
184 70
185 70
186 70
180 71
180 73
180 74
180 65
180 66
输出描述
用例输出:
输出:
186 70
185 70
184 70
183 70
182 70
180 74
180 73
180 71
180 66
180 65
【we are a team】
总共有 n 个人在机房,每个人有一个标号(1<=标号<=n),他们分成了多个团队,
需要你根据收到的 m 条消息判定指定的两个人是否在一个团队中,具体的:
消息构成为 a b c,整数 a、b 分别代表两个人的标号,整数 c 代表指令
c == 0 代表 a 和 b 在一个团队内
c == 1 代表需要判定 a 和 b 的关系,如果 a 和 b 是一个团队,输出一行’we are a
team’,如果不是,输出一行’we are not a team’
c 为其他值,或当前行 a 或 b 超出 1~n 的范围,输出‘da pian zi’
输入描述
第一行包含两个整数 n,m(1<=n,m<100000),分别表示有 n 个人和 m 条消息
随后的 m 行,每行一条消息,消息格式为:a b c(1<=a,b<=n,0<=c<=1)
输出描述
用例:
输入 | 输入值 |
---|---|
5 7 | |
1 2 0 | |
4 5 0 | |
2 3 0 | |
1 2 1 | |
2 3 1 | |
4 5 1 | |
1 5 1 | |
输出 | 输出值 |
We are a team | |
We are a team | |
We are a team | |
We are not a team |
const readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout, });const lines = []; let n, m; rl.on("line", (line) => {lines.push(line); if (lines.length === 1) {[n, m] = lines[0].split(" ").map(Number);} if (m && lines.length === m + 1) { lines.shift(); const msgs = lines.map((line) => line.split(" ").map(Number));print(msgs, n, m); lines.length = 0;} }); function print(msgs, n, m) { if (n < 1 || n >= 100000 || m < 1 || m >= 100000) return console.log("Null"); const ufs = new UnionFindSet(n); msgs.sort(([a1, b1, c1], [a2, b2, c2]) => c1 - c2).forEach((msg) => {const [a, b, c] = msg; if (a < 1 || a > n || b < 1 || b > n) { return console.log("da pian zi"); }if (c === 0) { ufs.union(a, b); } else if (c === 1) { const res =ufs.find(a) === ufs.find(b) ? "We are a team" : "We are not a team";console.log(res);} else { console.log("da pian zi");}}); } class UnionFindSet {constructor(n) { this.fa = new Array(n + 1).fill(0).map((_, idx) => idx); } find(x) { if (this.fa[x] !== x) { this.fa[x] = this.find(this.fa[x]); return this.fa[x]; } return x; } union(x, y) { let x_fa = this.find(x); let y_fa = this.find(y); if (x_fa !== y_fa) { this.fa[y_fa] = x_fa; } } }
编码工具:牛客网在线输入输出
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。