算法入门
文章平均质量分 63
算法入门
什么都不懂的小青蛙
这个作者很懒,什么都没留下…
展开
-
动态规划各种背包问题刷题
在项链上有N颗能量珠。如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为(Mars单位),新产生的珠子的头标记为m,尾标记为n。直接开两层的数组,好像有圆环的话用这种做法挺多的,比如说1234,就开12341234,即可以满足1234 2341 3412 4123这几种不同的合并方式,然后分别对这些不同的序列求最小值,然后求这n种情况的最小值即可。显然,不同的聚合顺序得到的总能量是不同的,请你设计一个聚合顺序,使一串项链释放出的总能量最大。原创 2023-07-27 11:29:41 · 1851 阅读 · 0 评论 -
算法刷题记录
文章目录cf题目记录773772122 B题126大二题目记录训练赛题目第一次天梯赛第二次天梯赛第三次天梯赛第四次天梯赛牛客浙农林牛客上海理工浙大训练赛leetcodecf题目记录773A题给定三个坐标就是让你求两个y相同时x的差,这个y要是最大的y#include <bits/stdc++.h>#include <iostream>#include <algorithm>using namespace std;struct nott{ int x原创 2023-07-27 11:22:02 · 1673 阅读 · 0 评论 -
Camp算法刷题记录2
这里要搞清楚的是肯定是连续的,而不是间断的,即不存在123超过w但是13满足的情况,因为如果说123超了,就说明12肯定满足了,因为这时的每个物品的体积都小于w/2(因为如果有一个物品体积>w/2&&原创 2023-07-27 11:16:43 · 1689 阅读 · 0 评论 -
Camp算法刷题记录1
Camp文章目录Campday1day2day3day4107 饿饿饭饭201202203 最大和上升子序列205 跳跳106 订单编号206 异或和或207 01序列加一302 序列维护305删删饿饿饭饭2401子串分支和402锦标赛(思维题哇)404 可重排列day1输入n,输出n行n列的由+和.组成的正方形,其中最外面一圈全是+,第二圈全是.,…,对于第ii圈,如果ii是奇数,那么全是+,否则全是.void solve(){ int n,x; cin>>n; for(in原创 2023-07-27 11:11:16 · 1711 阅读 · 0 评论 -
上海理工大学天梯赛 次佛锅 peek()
题目描述:显然,这是一道处理字符串的题,用map即可但是读入挺麻烦的#include <bits/stdc++.h>#include <map>#include <cstring>using namespace std;map<string,int>mp; int main(void){ string str; getline(cin,str); int len=str.size(); for(int i=0;i<l.原创 2022-03-31 17:30:16 · 1668 阅读 · 0 评论 -
Camp 订单编号
题面小缘开了一家公司,生意很好,每天都会收到很多订单,自动交易系统会自动给这些订单生成没有重复的订单编号。但是有一天,系统出现了未知的错误,导致当天的订单编号可能有重复的,这可把小缘急坏了。你可以帮助小缘按照规则给这些订单重新编号吗?按照时间先后顺序给出 NN 个正整数作为原订单编号,你需要按照规则依次赋予这些订单新的编号,对于任意一个订单,要找到大于等于其原订单编号且未被使用过的(没有被之前的订单作为新的订单编号)的最小整数,作为它的新订单编号。例如: 原订单编号依次为1 2 3 1,则新订单原创 2022-03-18 15:34:31 · 1697 阅读 · 0 评论 -
2021浙江省赛 Grammy and Jewelry
//Dijkstra的板子#include <stdio.h>#include <vector>#include <queue>using namespace std;const int maxn = 5e5+10;const int inf = 0x3f3f3f3f;struct node{ int to,w;};int m,n,s;vector<node>g[maxn];int dis[maxn];bool vis[maxn];.原创 2022-04-05 15:45:23 · 1803 阅读 · 0 评论 -
cf LRU 二分+队列+set
题目:ac代码:#include <iostream>#include <queue>#include <map>#include <set>using namespace std;const int N = 1e5 + 10;int ch[N]; int n, k;bool check(int mid) {queue <int>q;map<int, int>mp;set<int>.原创 2022-04-15 15:16:40 · 1876 阅读 · 0 评论