.C++信息竞赛及算法第14讲 排序算法.pptxVIP

  • 2
  • 0
  • 约 14页
  • 2024-05-30 发布于广西
  • 举报
C++信息竞赛及算法第14讲排序算法.pptx

学科竞赛编程教研研究院C++NOIPNOIIOI

题目描述输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。全排序问题

输入输出格式输入格式:n(1≤n≤9)输出格式:由1~n组成的所有不重复的数字序列,每行一个序列。每个数字保留5个常宽。

输入输出样例

1PARTONEintmain(){intn,i,j=1,k;cinn;for(i=1;i=n;i++){a[i]=n-i+1;j*=i;}//题目好像没说要从小到大输出//但保险起见还是初始赋值为最大序列//即a[1~n]=n~1;顺便计算n!for(i=1;i=j;i++){next_permutation(a+1,a+n+1);for(k=1;k=n;k++)couta[k];//排一次输出一次//空格建议复制coutendl;}return0;}#includeiostream//P1706#includecstdio#includecstring#includestring#includeiomanip#includealgorithm#includecmath#includevector#includesetusingnamespacestd;inta[10];

给定n个同心的扇形,求有多少面积,被至少k个扇形所覆盖。扇形面积

输入格式:第一行是三个整数n,m,k。n代表同心扇形个数,m代表将(?π,π]的角度区间平均分成2m份。从第二行开始的n行,每行三个整数r,a1,a2。描述了一个圆心在原点的扇形,半径为r,圆心角是从弧度输入输出格式

输入输出样例

1PARTONEprocedurechange(l,r,t,x,y,o:longint);//o为半径varmid:longint;beginiftf[t]=truethenexit;ifq[t]=r-l+1thenbegin//此区间所有小区间皆处理过,相当于此区间处理过tf[t]:=true;exit;end;if(x=l)and(y=r)thenbegininc(tree[t]);inc(tree_max[t]);inc(p[t]);iftree[t]=kthenbegintf[t]:=true;inc(ans,o*o*(r-l+1-q[t]));//计算答案q[t]:=r-l+1;tree_max[t]:=0;exit;end;iftree_max[t]+p[t]=kthendown(l,r,t,o);exit;end;mid:=(l+r)shr1;down(l,r,t,o);ifx=midthenchange(l,mid,tshl1,x,y,o);ify=mid+1thenchange(mid+1,r,tshl1+1,x,y,o);q[t]:=q[tshl1]+q[tshl1+1];tree_max[t]:=max(tree_max[t],max(tree_max[tshl1],tree_max[tshl1+1]));end;

题目描述猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中aiaj且ij的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。逆序对

输入格式:第一行,一个数n,表示序列中有n个数。第二行n个数,表示给定的序列。序列中每个数字不超过10^9输出格式:给定序列中逆序对的数目。输入输出格式

输入输出样例

1PARTONE#includebits/stdc++.husingnamespacestd;structsd{intval,loc;//val是值loc是当前点的位置}x[100005];boolcmp(sda,sdb){if(a.valb.val)returntrue;}intdiscretization[100005];//这单词真够长intmain(){std::ios::sync

文档评论(0)

1亿VIP精品文档

相关文档