《算法竞赛进阶指南》基本算法
跟着b站大雪菜学进行acwing算法打卡学习
楚非的小流萤
这个作者很懒,什么都没留下…
展开
-
二分
1.最佳牛围栏农夫约翰的农场由 N 块田地组成,每块地里都有一定数量的牛,其数量不会少于1头,也不会超过2000头。约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大。围起区域内至少需要包含 F 块地,其中 F 会在输入中给出。在给定条件下,计算围起区域内每块地包含的牛的数量的平均值可能的最大值是多少。输入格式第一行输入整数 N 和 F ,数据间用空格隔开。接下来 N 行,每行输入一个整数,第i+1行输入的整数代表第i片区域内包含的牛的数目。输出原创 2020-10-24 19:22:17 · 75 阅读 · 0 评论 -
递推与递归
1.递归实现指数型枚举从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3#include <bits/stdc++.h>using namespace原创 2020-10-23 17:13:31 · 112 阅读 · 0 评论 -
位运算
1. a^b求 a 的 b 次方对 p 取模的值。输入格式三个整数 a,b,p ,在同一行用空格隔开。输出格式输出一个整数,表示a^b mod p的值。数据范围0≤a,b,p≤109数据保证 p≠0输入样例:3 2 7输出样例:2#include <bits/stdc++.h>using namespace std;int ebs(int a,int b,int p){ int sum=1%p; while(b){ if(b%原创 2020-10-20 16:35:22 · 128 阅读 · 0 评论 -
前缀和与差分
1.激光炸弹地图上有 N 个目标,用整数Xi,Yi表示目标在地图上的位置,每个目标都有一个价值Wi。注意:不同目标可能在同一位置。现在有一种新型的激光炸弹,可以摧毁一个包含 R×R 个位置的正方形内的所有目标。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个正方形的边必须和x,y轴平行。求一颗炸弹最多能炸掉地图上总价值为多少的目标。输入格式第一行输入正整数 N 和 R ,分别代表地图上的目标数目和正方形的边长,数据用空格隔开。接下来N行,每行输入一组数据,每组数据包括三原创 2020-10-20 16:19:18 · 83 阅读 · 0 评论