蓝桥杯
小耿要努力变强!
neuqacmer
展开
-
1247. 后缀表达式(贪心+思维)
给定 N 个加号、M 个减号以及 N+M+1 个整数 A1,A2,···,AN+M+1,小明想知道在所有由这 N 个加号、M 个减号以及N+M+1个整数凑出的合法的后缀表达式中,结果最大的是哪一个?请你输出这个最大的结果。例如使用 123+− ,则 “23+1−” 这个后缀表达式结果是 4,是最大的。 输入格式第一行包含两个整数 N 和 M。第二行包含 N+M+1 个整数 A1,A2,···,AN+M+1。 输出格式输出一个整数,代表答案。 数据范围0≤N,M≤105 , −109≤.原创 2021-04-16 15:27:48 · 113 阅读 · 0 评论 -
1238. 日志统计(vector二维数组+双指针用法)
小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N行。其中每一行的格式是:ts id表示在 ts 时刻编号 id的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K个赞,该帖就曾是”热帖”。给定日志,请你帮助小明统计出所有曾是”热帖”的帖子编号。 输入格式.原创 2021-04-16 15:25:29 · 241 阅读 · 0 评论 -
1239. 乘积最大(mod及双指针算法)
给定 N 个整数 A1,A2,…AN。请你从中选出 K个数,使其乘积最大。请你求出最大的乘积,由于乘积可能超出整型范围,你只需输出乘积除以 1000000009的余数。注意,如果 X<0 , 我们定义 X 除以 1000000009 的余数是负(−X)除以 1000000009的余数,即:0−((0−x)%1000000009)输入格式第一行包含两个整数 N 和 K。以下 N 行每行一个整数 Ai。 输出格式输出一个整数,表示答案。 数据范围1≤K≤N≤105 , −10.原创 2021-04-14 21:55:15 · 181 阅读 · 0 评论 -
I - Worker(最小公倍数法或二分答案法)
Avin meets a rich customer today. He will earn 1 million dollars if he can solve a hard problem. There are n warehouses and m workers.Any worker in the i-th warehouse can handle ai orders per day. Thecustomer wonders whether there exists one worker as..原创 2021-04-14 21:21:35 · 127 阅读 · 0 评论 -
AcWing 788. 逆序对的数量(归并排序的应用)
给定一个长度为 n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。 输入格式第一行包含整数 n,表示数列的长度。第二行包含 n个整数,表示整个数列。 输出格式输出一个整数,表示逆序对的个数。 数据范围1≤n≤100000输入样例:6 2 3 4 5 6 1输出样例:5#include <iostream>using namespa.原创 2021-04-14 16:00:59 · 88 阅读 · 0 评论 -
1236. 递增三元组(二分法/前缀和)
给定三个整数数组A=[A1,A2,…AN] , B=[B1,B2,…BN], C=[C1,C2,…CN],请你统计有多少个三元组 (i,j,k)满足:1≤i,j,k≤NAi<Bj<Ck输入格式第一行包含一个整数 N。第二行包含 N 个整数 A1,A2,…AN。第三行包含 N 个整数 B1,B2,…BN。第四行包含 N 个整数 C1,C2,…CN。 输出格式一个整数表示答案。 数据范围1≤N≤105 , 0≤Ai,Bi,Ci≤105输入样例:3 1 1 1.原创 2021-04-12 14:02:38 · 171 阅读 · 0 评论 -
[蓝桥杯2019初赛]试题I:糖果(状压DP+位运算)
#include <bits/stdc++.h>using namespace std;const int N=105,M=(1<<20)+10;int n,m,k,x,a[N],dp[M];// dp[i]表示组成i状态的所需的最小包数int main() { ios::sync_with_stdio(false); cin>>n>>m>>k; memset(dp,-1,sizeof(dp)); for(int i=1;i.原创 2021-03-19 23:54:39 · 296 阅读 · 1 评论 -
[蓝桥杯2019初赛]试题H:修改数组(并查集)
感觉并查集是真的容易忘记。。。#include <cstdio>const int N = 1100010;int p[N];int find(int x){ if (p[x] != x) p[x] = find(p[x]); return p[x];}int main(){ int n; scanf("%d", &n); for (int i = 1; i < N; i ++ ) p[i] = i; for原创 2021-03-17 15:08:08 · 108 阅读 · 0 评论 -
[蓝桥杯2019初赛]试题G:外卖店优先级
#include<iostream>#include<vector>#include<algorithm>using namespace std;const int maxx=1e5+100;vector<int> p[maxx];int vis[maxx];int n,m,t;int main(){ cin>>n>>m>>t; int x,y; for(int i=1;i&.原创 2021-03-17 14:52:09 · 140 阅读 · 0 评论 -
[蓝桥杯2019初赛]试题D:迷宫
呜呜呜 这题做了我好久好久,一开始拿DFS写了半天,写是写出来了,但是实在是太大了,笑死,根本搜不出来,后来又在网上看各种各样的题解,总算给我给搞出来了,因为BFS本身没有DFS掌握的牢固,所以有些不太敢拿BFS写,晚上要把BFS的基本功加强一下,加油加油!#include<queue>#include<iostream>using namespace std;int n=30,m=50;string mp[35];bool vis[35][55];int dir[4.原创 2021-03-15 17:29:15 · 381 阅读 · 0 评论 -
[蓝桥杯2019初赛]试题C:最大降雨量
思路:一眼看到这个题,没什么具体的代码思路,就在草稿纸上自己枚举了起来,其实相当于一个7x7的格子,找中间那个格子中最大能填的数字就可以了,它中间这个数字得满足中位数的条件才可以,你需要找15个数字,比中间那个数字大才可以,所以答案是49-15=34。...原创 2021-03-15 14:01:24 · 260 阅读 · 0 评论 -
[蓝桥杯2019初赛]试题B:数列求值
#include<iostream>using namespace std;int a[30000005];int b[4];int main(){ a[1]=1; a[2]=1; a[3]=1; for(int i=4;i<=20190324;i++) { a[i]=(a[i-1]+a[i-2]+a[i-3])%10000000; } for(int i=0;i<4;i++) {.原创 2021-03-15 13:33:18 · 97 阅读 · 0 评论 -
[蓝桥杯2019初赛] 试题A:平方和
#include<iostream>using namespace std;int f(int x){ while(x>0) { if(x%10==9||x%10==0||x%10==2||x%10==1)return 1; else x=x/10; } return 0;}int main(){ long long sum=0; for(int i=1;i<=2019;i++) {.原创 2021-03-15 13:15:22 · 127 阅读 · 0 评论