- C++
Day08
- @ 2024-8-6 15:11:51
第一题
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 条评论
目前还没有评论...