摘要: 一个判断素数的函数 另一个函数大体分为: ans=ans+a[n+1];pd(n+1,m+1); ans=ans-a[n+1];//回溯 pd(n+1,m);//下一种方案 注意:不同组合算不同种 #include<bits/stdc++.h>using namespace std;long lon 阅读全文
posted @ 2022-08-23 08:25 TheMagician 阅读(38) 评论(0) 推荐(0)
摘要: 直接二分答案,区间的l取0、r取长度和,然后check时对每条长度除以二分的值向下取整,判断是否不小于k就行了。基本是转换成整型进行二分,这里直接对实型进行二分,然后输出时稍微处理就行了。#include<bits/stdc++.h> using namespace std; int n,k; do 阅读全文
posted @ 2022-08-22 21:29 TheMagician 阅读(119) 评论(0) 推荐(0)
摘要: 我们依次要判断 a 中的每一个数并计算出能切出多少个 mid ,还要用一个变量 ans 储存他们,如果 ans 分的分数比 k 多或者正好等于,返回真。如果是小于 k ,返回假。 当 f 返回的是真的时候,我们就要试试还能不能把 mid 调大一点,就要l = mid; 如果返回的是假,我们就加的太大 阅读全文
posted @ 2022-08-22 19:48 TheMagician 阅读(95) 评论(0) 推荐(0)
摘要: 首先将石头位置排个序,以便处理方便。 从位置的小到大扫遍所有石头,用一个变量存储上一个跳到的点。第一个与这上一个点的距离大于等于x的石头即是下一个跳到的点。因为我们要取最优状态,所以要保证跳过的石头数最少。 这样,便求出了这个x是否可行,如果可行,那就往右边二分,但要记得范围要包括x;若不行,则往左 阅读全文
posted @ 2022-08-22 19:04 TheMagician 阅读(279) 评论(0) 推荐(0)
摘要: 明不断取最小的两堆合并成较大的一堆是最优的。 (不太好证哦) ①**最优方案可以表示成一个二叉树。**总代价 \sum_{i=1}^{n} a_i × depth_i∑i=1n​ai​×depthi​。其中 depthdepth 是深度,也就是这堆果子在整个过程中被有效合并了几次。 注意:a_iai 阅读全文
posted @ 2022-08-17 10:12 TheMagician 阅读(198) 评论(0) 推荐(0)
摘要: 每个系统的半径即为该系统拦截的导弹中距离系统坐标最远的导弹的距离,所以不妨先算出每个导弹距离1号系统的距离,然后以距1号系统的距离进行升序排序。然后从距离1号系统最远的那枚导弹开始,计算出比它距离1号系统的距离远的所有导弹中距离2号系统的距离最远的那个距离(即以它前一枚导弹为1号系统所拦截的最远的导 阅读全文
posted @ 2022-08-16 19:56 TheMagician 阅读(255) 评论(0) 推荐(0)
摘要: 分析:当高位数比低位数小时,删掉 如324 先删掉3 234 删4 #include<bits/stdc++.h>using namespace std;string s;int n,a[251];int main(){ cin>>s; scanf("%d",&n); int len=s.lengt 阅读全文
posted @ 2022-08-16 13:57 TheMagician 阅读(96) 评论(0) 推荐(0)
摘要: 分析:因为每次打完水都是最大的下一个,所以次数为m+已打完的人数,当打完后将这个水龙头赋为现在打的水的人的下一个#include<bits/stdc++.h> using namespace std; int b[200000],i,j,n,m,bj[20000],a[200000],as,falg 阅读全文
posted @ 2022-08-16 11:19 TheMagician 阅读(105) 评论(0) 推荐(0)
摘要: 分析:因为最多两个一组,所以可以按最大的和最小的一组,是否满足条件,如果满足,同时赋值0,. #include<bits/stdc++.h>using namespace std;int n,m,i,a[300000],s=0,j;int main(){ cin>>m>>n; for(i=1;i<= 阅读全文
posted @ 2022-08-16 08:50 TheMagician 阅读(37) 评论(0) 推荐(0)
摘要: 分析:每次移动都需要将其补全或删掉,如果这个正好是平均数,则步骤次数不增加 9 8 17 6 -1 -2 7 -4 0 -3 4 -4 0 0 4 -4 0 0 0 0 #include<bits/stdc++.h>using namespace std;int main(){ int n,s=0, 阅读全文
posted @ 2022-08-16 08:19 TheMagician 阅读(36) 评论(0) 推荐(0)