-
个人简介
- [ ] ****
- [ ] #include<bits/stdc++.h> using namespace std;
int arr[10001]; int temp[10001];
int n;
void hb(int,int); // 合并
void fz_sort(int,int);
int main() {
cin >> n; srand(time(0)); for(int i=1;i<=n;i++) { arr[i] = rand()%1000+1; } fz_sort(1,n); for(int i=1;i<=n;i++) { cout << arr[i] << " "; } return 0;
}
void hb(int left,int right) { int mid = (left+right)/2; int idx1 = left; int idx2 = (left+right)/2 + 1; int idx3 = left;
// 有一部分放完就停止 while(idx1 <= mid && idx2<=right) { if(arr[idx1]<=arr[idx2]) { temp[idx3++] = arr[idx1++]; } else { temp[idx3++] = arr[idx2++]; } } while(idx1<=mid) { temp[idx3++] = arr[idx1++]; } while(idx2<=right) { temp[idx3++] = arr[idx2++]; } for(int i=left;i<=right;i++) { arr[i] = temp[i]; }
}
void fz_sort(int left,int right) {
if(left>=right) return; //递归边界 int mid = (left+right)/2; //取中间值 //第一部分 : left -> mid fz_sort(left,mid); //第二部分 : mid+1 -> right fz_sort(mid+1,right); hb(left,right);
}
- [ ] ****
#include<bits/stdc++.h> using namespace std;
int arr[10001]; int temp[10001];
int n;
void hb(int,int); // 合并
void fz_sort(int,int);
int main() {
cin >> n; srand(time(0)); for(int i=1;i<=n;i++) { arr[i] = rand()%1000+1; } fz_sort(1,n); for(int i=1;i<=n;i++) { cout << arr[i] << " "; } return 0;
}
void hb(int left,int right) { int mid = (left+right)/2; int idx1 = left; int idx2 = (left+right)/2 + 1; int idx3 = left;
// 有一部分放完就停止 while(idx1 <= mid && idx2<=right) { if(arr[idx1]<=arr[idx2]) { temp[idx3++] = arr[idx1++]; } else { temp[idx3++] = arr[idx2++]; } } while(idx1<=mid) { temp[idx3++] = arr[idx1++]; } while(idx2<=right) { temp[idx3++] = arr[idx2++]; } for(int i=left;i<=right;i++) { arr[i] = temp[i]; }
}
void fz_sort(int left,int right) {
if(left>=right) return; //递归边界 int mid = (left+right)/2; //取中间值 //第一部分 : left -> mid fz_sort(left,mid); //第二部分 : mid+1 -> right fz_sort(mid+1,right); hb(left,right);
} `
- [ ] ****#include<bits/stdc++.h> using namespace std;
#include<bits/stdc++.h> using namespace std;
int main() { /*
4 3 513 598 567 689 500 600 550 */ int m,n; cin >> m >> n; int sch[m+1],stu[n+1]; for(int i=1;i<=m;i++) { cin >> sch[i]; } for(int i=1;i<=n;i++) { cin >> stu[i]; } sort(sch+1,sch+m+1); int sum=0; for(int i=1;i<=n;i++) { int lef=1,rgt=m,mid; while(rgt-lef>1) { mid = (lef+rgt)/2; if(sch[mid]>stu[i]) rgt = mid; else{ lef = mid; } } sum += min(abs(sch[lef]-stu[i]),abs(sch[rgt]-stu[i])); } cout << sum; return 0;
}
- [ ] ****#include<bits/stdc++.h> using namespace std;
#include<bits/stdc++.h> using namespace std;
int main() {
int n,m; //n:木材的数量 m:需要的数量 cin >> n >> m; int wood[n+1]; int lef=0,rgt=0,mid; for(int i=1;i<=n;i++) { cin >> wood[i]; rgt = max(wood[i],rgt); } while(rgt-lef>1) { mid = (lef+rgt)/2; int sum=0; for(int i=1;i<=n;i++) { if(wood[i]>mid) { sum += wood[i] - mid; } } if(sum>=m) lef = mid; else rgt = mid; } cout << lef; return 0;
}
-
通过的题目
-
最近活动
题目标签
- 初窥门径
- 23
- 顺序结构
- 16
- 分支结构
- 7
- 模拟
- 3
- 结构体
- 2
- 其他
- 2
- 排序
- 2
- 计数排序
- 2
- 递归
- 2
- 略有小成
- 1
- 驾轻就熟
- 1
- 一维数组
- 1
- 搜索
- 1
- 枚举
- 1
- 二分查找
- 1
- 二分答案
- 1
- 月赛语法
- 1
- 条件分支
- 1
- GESP三级
- 1