C-C++
chenjunolo
1997
展开
-
有关排序问题
对于数组元素排序有不同方法: 冒泡排序,选择排序,快排: 最常规的选择排序:#include<iostream>using namespace std;int main(){ int a,b,c; cin>>a; while(a--) { int n[100]; for(int y=0;y<6;y++) cin>>n[y]; for(原创 2017-01-01 23:48:39 · 295 阅读 · 0 评论 -
有关nth_element的问题
nth_element是对部分排序(运用二分法),进行自定义查找的第几小的函数。(也可以第几大,只需写个函数就行) nth_element(m+0,m+n,m+kk) 其意思是:找[m[0],m[kk])中第n小的数(当n为0时是最小的) 如果要找第n大的则加一个函数: bool jiang(int a,int b) { return a>b; } nth_ele原创 2016-12-28 20:49:26 · 420 阅读 · 0 评论 -
N!大数据
有关大数据n阶乘的算法: 传统的用for或递归只能算小数据,如果要算1000!则不能。对于大阶乘可以用数组来搞定,用传统的方法,满10进1则可: 以下是代码:#include<string.h>int n[50000];int main(){ int q,c,r,kk; while(scanf("%d",&c)!=EOF) { memset(n,0,原创 2016-12-28 21:11:58 · 285 阅读 · 0 评论 -
Z字型
#include<cstdio>#include<cstring>#include<math.h>int main(){ char n[130]; char m[11][11]; int a,b,c,d,e,i; while(scanf("%s",n)!=EOF) { a=strlen(n); b=sqrt(a);原创 2016-12-28 21:19:51 · 437 阅读 · 0 评论 -
全错序
全错序递推公式: m[0]=0; m[1]=0; m[2]=1; for(int op=3;op<1100;op++) { m[op]=((m[op-1]+m[op-2])%)*(op-1)%; }原创 2016-12-28 21:26:33 · 368 阅读 · 0 评论 -
关于二分小技巧
#include<bits/stdc++.h>using namespace std;int t,n[100];/*查找w,并向左靠近(可能有多个w值)*/ int e_query(int w){ int l=0,r=t-1,mid; while(l<r) { int mid=(l+r)>>1; if(n[mid]>=w) r=mid;...原创 2018-05-11 13:48:21 · 209 阅读 · 0 评论