首页 > TAG信息列表 > Gym

2021年中国大学生程序设计大赛(哈尔滨)Gym 103447

B Magical Subsequence E Power and Modulo I Power and Modulo 二进制,思维,二分 题意 给你一个序列 \(A_n\),你可以进行多次操作; 每次操作可以选择一个任意长度的序列 \(B_m\) ,然后使得\(A_{B_i}-2^{i-1}\)。问你最少多少次操作可以将\(A_n\)序列变为零。 题解 可以发现 将A_n$

gym-101667E How Many to Be Happy

How Many to Be Happy? 最小割 因为是最小生成树,因此可以考虑对于一条边来说,他的左右两端的点视为处于两个不同的集合,然后只通过该边进行连接,这样最小生成树就必然会利用这条边 比该边大的边显然不用考虑,就考虑比该边边权小的边,然后进行最小割,边流量为 \(1\)(分割成两个集合,且割的

gym-103708E Erudite of words

Erudite of words 组合数学 + 容斥 定义 \(F_i\):表示由 \(i\) 个字母组成的长度为 \(n\) 的单词数(每个字母必须在单词中出现) 显然答案就是 \(F_k * C_{m}^{k}\) 关于 \(F_i\) 的递推式: \[F_i = i^n - \sum_{j=1}^{k-1}(F_j) \]显然 \(i^n\) 代表 \(i\) 个字母随意摆放的情况,容斥地

gym-103708B Building 5G antennas

Building 5G antennas dfs 剪枝 要字典序最小,显然第一个点就是 \(1\),后面考虑走 \(k\) 步后能到达的点集中选一个字典序最小的,重复该过程 考虑 \(set[i][j]\) 表示第 \(i\) 号点当前能走 \(j\) 步所包含的点的集合,我们可以发现对于相同的点,如果 \(j_1 > j_2\),显然有 \(set[i][j_1]

[单调栈] GYM-103185E Excellent Views

题目大意 有 \(N (N\leq 10^5)\) 个建筑排成一列,第 \(i\) 个建筑的高度是 \(H_i\),\(H_i\) 两两不同,从建筑 \(i\) 到建筑 \(j\) 被认为是可达的,当且仅当不存在 \(k\) 使得 \(|i-k|\leq|i-j|\) 并且 \(H_j<H_k\)。 题解 考虑算每个 \(H_i\) 带来的贡献。维护一个从栈底到栈顶单调递

Gym-101630C Connections

Connections 思维 真没看出来 由于给的是强连通图,直接保留从 \(1\) 开始深搜,保证 \(1\) 能访问到其他所有点的,然后反向建图,保证所有点能够到达 \(1\) #include <iostream> #include <cstdio> #include <algorithm> #include <queue> #include <vector> using namespace std; const

[Codeforces_gym_102136] I.Permutations again

传送门 Description Given a sequence \(A_i\) consisting of \(N\) integers. Find the number of pairs \((L, R)\) for which the subsegment \({A_L, A_{L + 1}, ...,A_R}\) is a permutation of \(R - L + 1\) numbers. A permutation of \(K\) numbers is a

L6U6-Choosing a gym

L6U6 Choosing a gym 2022.08.14 Sunday 15:40 - 16:30 this class started? ==>Is this lesson started? How many grades of your college? Freshman sophomore year junior year senior year I graduated five years ago. It's five years since I graduated from

[Codeforces_gym_103469] D.Deleting

传送门 Description You are given an array \([1,2,…,n]\), where the number of elements \(n\) is even. In one operation, you can delete two adjacent elements of the array. If these elements are \(i\) and \(j\), the cost of this operation is \(cost(

F - Subarrays Gym 103736F

题意: 求有多少段连续的区间,他的区间和是k的倍数。 题解: 求取模后的前缀和,如果两点取模后的前缀和相同,则相减后、结果为零。也就是取模为零,也就是是k的倍数。 #include<bits/stdc++.h> #define int long long using namespace std; const int N=1e5+10; int n,k,ans; int a[N],sum;

关于使用gym环境为什么要unwrapped

一般来说,从gym引用环境只需要gym.make就可以了,如:env=gym.make('CartPole-v0')。 实际上,创建环境返回的env是一个经过包装的环境,会对step次数进行限制,比如限定小车保持平衡200步后就会失败。 如果用上gym.make().unwrapped则可以得到原始类,此时步数不受限制。

baselines库中cmd_util.py模块对atari游戏的包装为什么要分成两部分并在中间加入flatten操作呢?

如题: cmd_util.py模块中对应的代码:     可以看到不论是atari游戏还是retro游戏,在进行游戏环境包装的时候都是分成两部分的,如atari游戏,第一部分是make_atari,第二部分是wrap_deepmind,在两者之间有一个FlattenObservation操作。   通过FlattenObservation的代码可以知道,该操作是

[gym] XXII Open Cup, Grand Prix of Daejeon

B. Bingo 题意: 给定一个n*n的矩形,在里面画k个#,使得没有任意n个#同行或者同列或者在对角线上。 题解: 一开始直接占了一个对角线,喜提WA7,原因是偶数的情况,两条对角线没有交点。直接交换一下两个对角线的第一个格子就行了,左下,右上留空,然后中间是从左上到右下留空,其他填满就行,一共能填n

移动云使用经验(三)安装marl所需包 (pytorch, gym, mpe)

1 安装pytorch 首先按照(二)用conda新建虚拟环境,建议用python3.8,首先激活虚拟环境并参考博文添加清华源,然后按照官网运行如下指令: conda activate #env_nameconda install pytorch=1.10.0 cudatoolkit=10.2 我只安装了torch。(博客写于20220228,未来指令可能会改变)  然后安装torch_

gym库中from gym.wrappers import FlattenObservation的理解

  看代码的过程中看到有这样的调用:   from gym.wrappers import FlattenObservation if sinstance(env.observation_space, gym.spaces.Dict):     env = FlattenObservation(env)     不是很理解这个代码的意思。         =========================================

H - SBC‘s Hangar Gym - 102861H

题目链接 题意:题意很简单,就是在给定的n个数里找到m个数之和,求其在给定区间的范围内的数量。 题解:首先我们要找到的是一个范围内的数,这样做的话因为有左边界,也有右边界,所以做起来很不方便,但是根据容斥定理得,假设f[r]为小于等于r的种类数,则f[r]-f[l-1]即[l,r]内的种类数,这样做

【强化学习】在gym环境下,老虎机的算法总结

目录 问题描述: 实现步骤: 1.环境的部署与实现 2.贪心策略(The epsilon-greedy algorithm) 3.玻尔兹曼勘探(The softmax exploration algorithm) 4.置信上限算法(The upper confidence bound algorithm) 5.汤普森采样算法(The Thompson sampling algorithm) 参考: 问题描述:    

Gym 237040F 线段树:区间修改,区间查询

题目链接:Gym 237040F 线段树:区间修改,区间查询 题目大意: 题解: 线段树或者树状数组模板题。 \(cin,cout\)貌似会超时,要用\(scanf,printf\)或者快读。 线段树 考察对\(lazy\)标记的使用。 #include <cstdio> #include <cstring> #include <iostream> using namespace std; #define

Proximal Policy Optimization(PPO)算法实现gym连续动作空间任务Pendulum-v0(pytorch)

目录 1.ppo算法概述 2.Pendulum-v0 3.代码实现 1.ppo算法概述  PG算法                  视频参考李宏毅强化学习课程:李宏毅深度强化学习(国语)课程(2018)_哔哩哔哩_bilibili                 上图表示actor与环境交互的一次经过,从开始的状态s1,actor

强化学习实战 | 自定义gym环境之显示字符串

如果想用强化学习去实现扫雷、2048这种带有数字提示信息的游戏,自然是希望自定义 gym 环境时能把字符显示出来。上网查了很久,没有找到gym自带的图形工具Viewer可以显示字符串的信息,反而是通过pyglet: import pyglet from gym.envs.classic_control import rendering class DrawTex

Windows下OpenAI gym环境的使用

Windows下OpenAI gym环境的使用 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. gym环境搭建用到的关键语句 1.1 准备工作     首先创建一个虚拟环境conda create -n RL python=3.8,激活activate RL。我用到的包及版本conda list: ale-py 0.7.3 <pip> atari-py 1

[Gym 101234D] Forest Game 简要题解

Statement 给定一棵 \(n\) 个点的树,每次从还活着的节点中随机选出一个点,把计数器加上其所在的树的大小并把这个点以及与之相连的边删除,求整棵树都被干掉时计数器上数字的期望。 \(n\leq 10^5\) Solution 思路不难非常想,调代码过于恶心 考虑设 \(a_i\) 表示 \(i\) 的贡献的期望,也就

贪吃蛇的Gym环境搭建

写个贪吃蛇拿来入门实践深度强化学习感觉上是再合适不过了,不过得先把贪吃蛇写出来 一.游戏规则 也无意搞得多复杂,游戏规则就概括为两句话: 1.头部碰到边界或者身体游戏结束 2.吃到食物长度加一 二.准备文件 1.安装好gym和pygame 2.安装好之后,可以在anaconda prompt界面用pip

ubuntu的kylin16版本安装OpenAI gym

参考链接: Vmware Ubuntu kylin NAT模式上网设置_y4ung-CSDN博客 ubuntu16.04纯净版-安装Python3.8.1/升级pip - 王钰 - 博客园 (cnblogs.com) ubuntu python3 pip报错SyntaxError: invalid syntax_海棠花未眠的博客-CSDN博客 虚拟机安装不赘述了,使用版本为ubuntukylin-16.04-des

ubuntu的kylin16版本安装OpenAI gym

参考链接: Vmware Ubuntu kylin NAT模式上网设置_y4ung-CSDN博客 ubuntu16.04纯净版-安装Python3.8.1/升级pip - 王钰 - 博客园 (cnblogs.com) ubuntu python3 pip报错SyntaxError: invalid syntax_海棠花未眠的博客-CSDN博客 虚拟机安装不赘述了,使用版本为ubuntukylin-16.0