• 个人简介

    • [ ] ****
    • [ ] #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