关注
回去想的,用全排列,逐个搜索
#include<stdio.h>
int p[4000000][100];//保存剩余数的全排列
int num=0;//保存剩余数全排列个数
int count=0;//保存i<j,a[i]<a[j]的个数
void swap(int &a,int &b)
{
int t;
t=a;
a=b;
b=t;
}
//求剩余数的个数
int less(int *a,int *b,int
n)//扫描b[n],如果有b[j]=a[i],b中从j开始每项往前面移一位 ,s记录b中剩余个数;
{
int i,j,k,s=n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(a[i]==0) break;
if(b[j]==a[i])
{
s--;
for(k=j;k<n-1;k++)
{
b[k]=b[k+1];
}
break;
}
}
return s;
}
//剩余的数全排列
void perm(int a[],int start,int
n)//a[n]数组从a[start]开始全排列,结果放在b[num][n]中 ,num计数
{
int i;
int *c;
if(start==n-1)
{
for(i=0;i<n;i++)
p[num][i]=a[i];
num++;
return;
}
else
{
for(i=start;i<n;i++)
{
swap(a[i],a[start]);
perm(a,start+1,n);
swap(a[i],a[start]);
}
}
}
//剩余排列数p[x][m]加到a[n]=0中
void add(int a[],int n,int x)
{
int i=0,j=0;
for(i=0;i<n;i++)
{
if(a[i]==0)
{
a[i]=p[x][j];
j++;
}
}
}
//计算是否k个 ,若是count++
void cou(int a[],int n,int k)
{
int i,j,c=0;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
{
if(a[i]<a[j])
c++;
}
if(c==k)
count++;
}
int main()
{
int n,k,m,i,j;
while(scanf("%d%d",&n,&k)!=EOF)
{
int a[n],b[n],c[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
b[i]=i+1;
}
m=less(a,b,n);
perm(b,0,m);
for(i=0;i<num;i++)
{
for(j=0;j<n;j++)
c[j]=a[j];
add(c,n,i);
cou(c,n,k);
}
printf("%d\n",count);
count=0;
num=0;
}
}
查看原帖
点赞 1
相关推荐
万物DP:你这写的太多了,我看了看其实很多也没亮点
点赞 评论 收藏
分享
10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活 点赞 评论 收藏
分享
09-04 20:39
南京林业大学 机械工程师
阿武同学:基本信息保留前面三行,其他的可以全部删掉,邮箱最重要的你没写,主修课程精简到8个以内,实习里面2/3/4都是水内容的,非要写的话建议两到三句话,项目经历排版优化下,自我评价缩到三行 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 校招生月薪1W算什么水平 #
32714次浏览 187人参与
# 哪一瞬间觉得自己长大了 #
38023次浏览 493人参与
# “vivo”个offer #
38332次浏览 279人参与
# 我是面试官,请用一句话让我破防 #
26018次浏览 127人参与
# vivo工作体验 #
27712次浏览 124人参与
# 如果上班像打游戏,你最想解锁什么技能 #
7917次浏览 70人参与
# 工作后明白的那些道理 #
21526次浏览 225人参与
# 一人一个landing小技巧 #
123640次浏览 1441人参与
# 实习最想跑路的瞬间 #
87232次浏览 542人参与
# 中美关税战对我们有哪些影响 #
42588次浏览 360人参与
# 机械制造2023笔面经 #
149343次浏览 840人参与
# 中美关系回暖,你会选择出海吗? #
6281次浏览 106人参与
# i人适合做什么工作 #
11133次浏览 97人参与
# 如果重来一次你还会读研吗 #
201381次浏览 1932人参与
# AI时代,哪些岗位最容易被淘汰 #
3154次浏览 27人参与
# 华为保温 #
107212次浏览 405人参与
# 哪些行业值得去? #
5146次浏览 50人参与
# 读研or工作,哪个性价比更高? #
78010次浏览 767人参与
# 美团开奖 #
219824次浏览 1138人参与
# 如果秋招能重来,我会____ #
36804次浏览 298人参与
# 华为池子有多大 #
110328次浏览 750人参与