第一题
100长的路 分段装到桶里作比较
maxx = 0 ;
40 75 1~40 ->75   a
50 35 41~90 ->35
10 45 91~100 ->45

40 76 1~40   a[i] 和 76
20 30 41~60  a[i] 和 30
40 40 61~100 a[i] 和 40

cin>>n>>m;
j=0,len=0;
for(i , n){
x,y;
for(j=j+1;j<=x+len;j++){
a[j] = y;
}
len = j;
}

第二题

放水速度永恒是 1 同时有m个口子  n个大小的数要减完

n m

n个数    a

t = m+1;
while(t<=m+n){ //全部都接完, 而不是都进来
for(i 1~m;i++){
a[i]--; //会有可能接完
if(a[i]==0){
a[i] = a[t];
t++;
} 	
}
ans++;
}

第三题

struct node{
int x,y,jl;
}a[10010];

int len(x y ,a, b){
return len;
}
bool cmp(node a ,node b){
return a.jl>b.jl;
}
思路  x y  xx yy
cin n
for(){
//先按第一个的位置算所有的距离
cin>>a>>b;
a[i].x = a;
a[i].y = b;
a[i].jl = len(xyab);
}
sort(); 从大到小排序

ans = a[1].jl; //当前的阳光就等于1的最大距离

for(2~n){ //让第二个点进来 分担一下 如果分担以后变小了 就记录
r1 = a[i].jl;
r2 = max(r2  ,len(xx,yy,a[i-1].x,a[i-1].y));
ans = min(ans,r1+r2);
}
第四题

因为计算机会无脑的破坏最大值  那一定能拿到次大值

次大值最大的那一组就是正确的选择 .

怎么存  怎么找次大值
6
5 28 16 29 27
23 3 20 1
8 32 26
33 11
12
二维数组要填满

for( 1~n){
for(j i+1 ~n){
cin >>a[i][j];
}
}

0 条评论

目前还没有评论...