摘要:
将阈值想象成水,安全系数想象成岛屿,从一开始阈值最低,慢慢升高,从低往高淹没岛屿,当岛屿的result为1,淹没扣分,result为0,淹没加分,寻找最佳阈值,使得分数最高。 需要注意的: 使用了结构体将result和y绑定在一起,易于之后的sort排序 sort自定义排序 淹没岛屿时要淹没所有相同 阅读全文
摘要:
借用岛屿情况来分析这个题。考虑p足够大的情况,所有的数都被海水淹没了,只有 0 个岛屿。然后,海平面逐渐下降,岛屿数量出现变化。每当一个凸峰出现,岛屿数就会多一个;每当一个凹谷出现,原本相邻的两个岛屿就被这个凹谷连在一起了,岛屿数减少一个。使用数组cnt[],cnt[i] 表示海平面下降到i时,岛屿 阅读全文
摘要:
该题关键点在于:分段计算 先对f分段:for(int i=1;i<=n+1;i++) //以 f(i) 为区域划分计算 在此区域内f的取值相同,值为:i-1。 再对每个f值相同的区域按照g值进行分段:for(int j=a[i-1];j<=a[i]-1;j=j+Long){//此区间内有Long个g 阅读全文
摘要:
差分性质:要给数组 Q 的第 a 个到 第 b 个数(从1开始的数组)加 k,那就 Q[a]+=k, Q[b+1]-=k。 最后再将 Q 求前缀和还原数组 : 遍历 Q[i] = Q[i] + Q[i-1] #include<iostream> #include<bits/stdc++.h> int 阅读全文
摘要:
太简单了,没啥好说的 n = int(input()) numSum = 0 for i in range(0, n): w, score = map(int, input().split()) numSum += w*score y = max(0, numSum) print(y) 阅读全文
摘要:
略微观察以下A序列与B序列的关系即可 n = int(input()) ListB = list(map(int, input().split())) sumMin = 0 sumMax = 0 # 一直出现的都是最大的A sumMax = sum(ListB) # 当没有出现新的最大值B时,直接加 阅读全文
摘要:
当 List2[j] 小于 0 的时候证明有负的 j 没有配对,大于 0 的时候证明有正的 j 没有配对,只要配对成功一次就多一对相反数 n = int(input()) List1 = list(map(int, input().split())) List2 = [0]*1005 count = 阅读全文
摘要:
找到个出现最多的,并且在出现最多中最小 n = int(input()) List1 = list(map(int, input().split())) List2 = [0]*10000 maxNum = 0 for i in List1: List2[i] += 1 if List2[maxNu 阅读全文
摘要:
个人操作成功,除了ssh还可以用ip 1. 服务器上安装 TensorBoard pip install tensorboard 2. 使用 TensorBoard // 导入SummaryWriter from torch.utils.tensorboard import SummaryWrite 阅读全文
摘要:
观察式子发现规律 n, N = map(int, input().split()) num = list(map(int, input().split())) sum1 = 0 for i in range(0, n-1): sum1 += (num[i+1] - num[i]) * (i+1) s 阅读全文