算法题
文章平均质量分 52
lzc__123
这个作者很懒,什么都没留下…
展开
-
2021“MINIEYE杯”中国大学生算法设计超级联赛(7)Link with EQ
题目描述:n个位置,第一个人随机选,后面的人会选择与其他所有人都最远的位置坐下(如果有多个,则随机选一个),问最多能坐多少人?思路:考虑n个坐位,第一个人坐在两端任意一个位置时候能坐多少人设f(x)为 x个位置按先坐两端能坐下多少人,1.先坐到两端,f(1)=1,f(2)=12.然后下一个人必然会坐到(i+1)/2这个位置,问题就转化为f((i+1)/2)与f(i-(i+1)/2+1)能坐多少人,求和再减去(i+1)/2位置重复算的一个。递推式如下:f(x)=f((i+1)/2)+f(i−(i+原创 2021-08-24 16:06:19 · 272 阅读 · 0 评论 -
2021杭电多校1 1007/HDU 6956 Pass!
思路就是找规律发现递推公式,用递推公式求解通项公式,bsgs分奇偶求解可以看这篇博客https://www.cnblogs.com/xiaopangpangdehome/p/15042792.html(有exbsgs和bsgs模板)有一道类似的题:随机数生成器(洛谷也有这个题目)题目大意:思路:利用特征方程求解通项公式,再用bsgs求解,时间复杂度是O(sqrt§),注意一些特殊情况。代码:#include <bits/stdc++.h>#define ll long lon原创 2021-08-24 14:33:05 · 182 阅读 · 0 评论 -
2021“MINIEYE杯”中国大学生算法设计超级联赛(3)Rise in Price
设 fi,j,k 表示从 (1, 1) 走到 (i, j),一路上收集了 k 个钻石时,钻石的单价最高能涨到多少,则 ans = max(k × fn,n,k)。42021“MINIEYE 杯” 中国大学生算法设计超级联赛(3) 题解对于固定的 (i, j) 来说,考虑两个状态 fi,j,x 和 fi,j,y,其中 x < y,如果 fi,j,x ≤ fi,j,y,则状态 fi,j,x 一定不可能发展为最优解,可以剔除。对于每个 (i, j),用列表按照 k 升序保存所有状态,并剔除不可能原创 2021-08-06 17:23:32 · 103 阅读 · 0 评论 -
2021牛客暑期多校训练营#4 B.Sample Game
#include<iostream>#define ll long longusing namespace std;const int N=107,mod=998244353;ll a[N],b[N],p[N];ll qmi(ll m, ll k, ll p){ ll res = 1 % p, t = m; while (k) { if (k&1) res = res * t % p; t = t * t % p;原创 2021-08-06 17:19:00 · 139 阅读 · 0 评论 -
简单的博弈论(1)
公平组合游戏ICG若一个游戏满足:由两名玩家交替行动;在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关;不能行动的玩家判负;则称该游戏为一个公平组合游戏。NIM博弈属于公平组合游戏,但城建的棋类游戏,比如围棋,就不是公平组合游戏。因为围棋交战双方分别只能落黑子和白子,胜负判定也比较复杂,不满足条件2和条件3。有向图游戏任何一个游戏可以看作一个图(或者状态机),每次操作都是沿着图(状态机)的边移动。给定一个有向无环图,图中有一个唯一的起点,在起点上放有一枚棋子。两名玩家交替地把原创 2021-07-20 09:57:08 · 268 阅读 · 0 评论 -
动态规划(DP):I-区域
动态规划(DP):I-区域#include<bits/stdc++.h>using namespace std;const int N=17;int a[N][N],sum[N][N];int dp[N][N*N][N][N][2][2];struct node{ int i,j,l,r,x,y;}fa[N][N*N][N][N][2][2];struct node mm;void print(int i,int j,int l,int r,int x,int y){原创 2021-07-14 14:00:03 · 348 阅读 · 0 评论