题目答案
C
交换次数等于逆序对数 =10
题目答案
C
题目答案
C
HTTP(HyperText Transfer Protocol)超文本传输协议、FTP(File Transfer Protocol)文件传输协议、POP3(Post Office Protocol - Version 3)邮局协议版本3、Telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议和主要方式。
题目答案
2880
(坐标统计)输入 nn 个整点在平面上的坐标。对于每个点,可以控制所有位于它左下方的点(即 xx、yy 坐标都比它小),它可以控制的点的数目称为“战斗力”。依次输出每个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输出其中最大的编号)
#include<iostream>
using namespace std;
const int SIZE = 100;
int x[SIZE], y[SIZE], f[SIZE];
int n, i, j, max_f, ans;
int main(){
cin>>n;
for (i = 1; i <= n; i++)
cin >> x[i] >> y[i];
max_f = 0;
for (i = 1; i <= n; i++){
f[i] =①;
for (j = 1; j <= n; j++){
if (x[j] < x[i] && ②)
③;
}
if (④){
max_f = f[i];
⑤;
}
}
for (i = 1; i <= n; i++)
cout<<f[i]<<endl;
cout<<ans<<endl;
}
填空位置 ①:
0
填空位置 ②:
y[j] < y[i]
填空位置 ③:
f[i]++
填空位置 ④:
f[i] >= max_f
填空位置 ⑤:
ans = i
j[i]是第i个点的战斗力大小,ans是战斗力最高的点的编号,max f是战斗力最高的点的战斗力。
#include<iostream>
#include<cstring>
using namespace std;
const int SIZE = 25;
bool used[SIZE];
int data[SIZE];
int n, m, i, j, k;
bool flag;
int main(){
cin>>n>>m;
memset(used, false, sizeof(used));
for (i = 1; i <= m; i++){
data[i] = i;
used[i] = true;
}
flag = true;
while (flag){
for (i = 1; i <= m-1; i++)cout<<data[i]<<"";
cout << data[m] << endl;
flag =①;
for (i = m; i >= 1; i--){
②;
for (j = data[i]+1; j <= n; j++)
if (!used[j]){
used[j] = true;
data[i] =③;
flag = true;
break;
}
if (flag){
for (k = i+1; k <= m; k++)
for (j = 1; j <=④; j++)
if (!used[j]){
data[k] = j;
used[j] = true;
break;
}
⑤;
}
}
}
}
题目答案
填空位置 ①:
false
填空位置 ②:
used[data[i]] = false
填空位置 ③:
j
填空位置 ④:
n
填空位置 ⑤:
break
used[i] == 0表示数字i还没有被使用过,每次倒着找到第一个能变大的数字然后变大,接着把后面的数字直接从小到大安排,就生成了一个新的组合