2 董建的博客

尚未进行身份认证

我要认证

自律和节制是一切幸福的开始!

等级
TA的排名 3w+

set的使用

分析:set:左闭右开,即s.end()取不到注意使用:ss = size();ss--#include <iostream>#include <set>using namespace std;int main(){ int n,m,x; set<int>s; cin >> n >> m;...

2020-04-07 17:29:22

魔力转圈圈(快速幂)

分析:1,实质为取模运算:(初始位置 + 移动的总位置) % n2,数量太大需用到快速幂: 指数转为二进制计算 快速幂快的实质:把指数k搞成一串二进制数,一位一位的算幂并取模 这样可以避免数据溢出,同时将原来的时间复杂度O(n):--->o(logn)3,pow()函数在多运算符的式子中使用可能会报错:自己写一个函数#include <bits/stdc++.h&g...

2020-04-07 16:57:22

跳石头(最小最大问题)

思路:二分法查找最短距离的最长值 查找范围:1---l分析:1,取最短距离为mid,然后判断这个mid能否满足另一个条件2,判断mid : 遍历a[],与学校灭路灯问题类似处理, 相邻两块石头距离小于mid的情况不能大于m即成立, 否则此mid不成立。(即我撤走m块石头能干掉所有距离比mid小的情况)总结:最短最长,最长最短,最大最小,最小最大问题一般用二分搞定。#in...

2020-04-03 16:52:38

11

2020-04-03 16:06:30

切钢管

样例输入:2 48 4样例输出:2分析:题目两个要求: 1,你给我切够k根 2,每根尽可能的长那么我们可以遍历一个条件,看另一个条件是否满足so,可以从切短的开始遍历,看是否能切出k根。即最大高度从1开始增加,看能否切出K根所以要查找这个最大高度,传统的循环暴力是从1开始一个一个的顺序找而二分查找的优点就是每次能砍掉数据总量的一半。#include <...

2020-04-02 20:07:52

常用排序+查找算法时间复杂度大集合

排序算法:查找算法:

2020-04-02 19:09:41

开花(在b数组中二分查找a数组元素)

直接暴力数组a找b数组,超时,需用二分超时暴力代码#include <bits/stdc++.h>using namespace std;int a[10005],b[100005];int main(){ int n,m,x; set<int> s; cin >> n >> m; for(int i ...

2020-04-02 18:37:14

最多干掉几个怪兽

分析;只需把野怪按血量升序排列,依次打野怪即可#include <bits/stdc++.h>using namespace std;struct st{ int x; int y;}a[5005];bool comp(st a,st b){ return a.y < b.y;}int main(){ int n,m,h,b;...

2020-04-01 16:12:36

学校灭路灯

样例输出1分析:若两盏灯之间的距离超过m,则中间的灯不能灭;否则干掉。排序后,从第一盏灯往后走,若a[i+1] - a[i-1] <= m 干掉第i盏,只需把第i盏的位置改为i-1的位置即可 下一次在比较时,用的是a[i+2] - a[i-1] <= m;#include <bits/stdc++.h>using namespace std;i...

2020-04-01 15:53:27

奶牛们

分析:总成本最低,其实就是比较奶牛们在当前这一周生产完客户这一周所需的量,还是在前面的周生产所需的单价最小。若提前生产,每周需加保存费S单价计算:now = c + S;当前周的最低单价 = min(now + S , c)#include <bits/stdc++.h>using namespace std;int now = 1e9;int main(){ ...

2020-03-31 15:15:33

复现最大子矩阵

暴力卡上下左右边界。#include <bits/stdc++.h>using namespace std;int main(){ int n,m,a[55][55]; cin >> n >> m; for(int i = 1; i <= n; i++){ for(int j = 1; j <= m;...

2020-03-31 14:42:20

北极圈远征

暴力:从大到小遍历x,遍历到k为整数结束#include <bits/stdc++.h>using namespace std;int main(){ int n,k; cin >> n; for(int i = 100; i >= 1; i--){ if((n / 52 - 7 * i) % 21 != 0){ ...

2020-03-31 14:25:52

装饰效果(最大连续字段和)

#include <bits/stdc++.h>using namespace std;int main(){ int n,a[1005]; cin >> n; for(int i = 1; i <= n; i++){ cin >> a[i]; } int max1 = 0; for(...

2020-03-30 10:33:09

四个数的平方和

注意:for()的条件写法 i * i + j * j + k * k + l * l <= ni , j , k ,l正好递增,保证了字典序。不用再次比较字典序。四层循环和三层循环均可。#include <iostream>#include <cmath>#include <cstring>using namespace std;...

2020-03-30 10:00:14

多项式相乘

注意:1,先按次幂排序,then合并同次幂2,赋值;a[]-->b[]-->c[]#include <iostream>#include <bits/stdc++.h>using namespace std;struct st{ int x; int y;}a[5],b[5],c[5];bool comp(st a,st b)...

2020-03-29 12:32:26

蒜头的越野比赛

注意:1,sum[]的使用,避免while()里面套for().2,cin,cout,在数据量过10的5次方时间开销会很大3,数据量采用long long#include <bits/stdc++.h>using namespace std;int a[100005];long long sum[100005];int main(){ int n,k,p,...

2020-03-29 11:57:28

掷色子

暴力

2020-03-29 10:31:25

杨辉三角

求杨辉三角第20行第10个数。注意开数组时 a[20][20],会溢出,第20行数据错误,so,开大一些#include <iostream>#include <bits/stdc++.h>using namespace std;int main(){ int a[50][50]; a[1][1] = 1; a[2][1] = 1; ...

2020-03-29 10:13:25

统计字符出现次数

注意:1,字符与整数的转化2,int b[26] = {}; b[(int)s[i]]++;//统计字母次数代码妙处:先sort()按字典排字符串,简单解决字母出现次数一样#include <iostream>#include <cstring>#include <bits/stdc++.h>using namespace std;in...

2020-03-28 18:33:18

网页跳转

样例输入:10VISIT https://www.jisuanke.com/course/476VISIT https://www.taobao.com/BACKBACKFORWARDFORWARDBACKVISIT https://www.jisuanke.com/course/429FORWARDBACK样例输出:https://www.jisuanke.com/...

2020-03-28 10:58:16

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 推荐红人
    推荐红人
    发布高质量Blink获得高赞和评论,进入推荐栏目即可获得
  • 精彩红人
    精彩红人
    发布高质量Blink获得高赞和评论,进入精彩栏目即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。