我这个傻逼被治了一下午。

大好的橘势,两个小时6T,去看L,哇傻逼题。然后我跑的最短路T到自闭

最后十几分钟去想了下A,一直在想如何表示状态。。就是想不到二进制搞一下。。。

然后游戏结束了。。以后我就是蓝名之耻了。(注:此称号送给一场比赛里排名最低的蓝名选手)

所以非常凄惨到现在也只有8个,,我还想AK来着,,毕竟有紫名选手AK了,那我1800多分也差不多叭

注意:堆优化dijkstra的复杂度是mlogm!!!

注意:堆优化dijkstra的复杂度是mlogm!!!

注意:堆优化dijkstra的复杂度是mlogm!!!

A:貌似有奇怪的式子或者更佳的转移方式?

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const ll mod = 1e9+7;
 5 ll f[2][8];
 6 int n;
 7 void init(){
 8     f[0^1][7]=1;
 9     int cnt=0;
10     while (cnt<n){
11         cnt++;
12         int i=cnt%2;
13         f[i^1][0]=f[i][7];
14
15         f[i^1][1]=f[i][6];
16
17         f[i^1][2]=f[i][5];
18
19         f[i^1][3]=f[i][7]+f[i][4];
20
21         f[i^1][4]=f[i][3];
22
23         f[i^1][5]=f[i][2];
24
25         f[i^1][6]=f[i][7]+f[i][1];
26
27         f[i^1][7]=f[i][6]+f[i][3]+f[i][0];
28
29         for(int j=0;j<=7;j++){
30             f[i^1][j]%=mod;
31         }
32     }
33 }
34 int main(){
35     ios::sync_with_stdio(false);
36     cin>>n;
37     init();
38     if(n&1){
39         cout<<min(f[0][7],f[1][7]);
40     } else{
41         cout<<max(f[0][7],f[1][7]);
42     }
43 }

View Code

B:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 string s;
 5 int main(){
 6     ios::sync_with_stdio(false);
 7     cin>>s;
 8     int nc=0,ns=0;
 9     for(int i=0;i<s.length();i++){
10         if(s[i]=='C'&&nc<2){
11             nc++;ns=0;
12             cout<<'B';
13         } else if(s[i]=='C'&&nc==2){
14             cout<<'P';
15             nc=0;ns=0;
16         } else if(s[i]=='S'&&ns<2){
17             ns++;cout<<'D';nc=0;
18         } else{
19             ns=0;nc=0;cout<<'T';
20         }
21     }
22 }

View Code

C:

D:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 int n;ll s;
 5 int main(){
 6     ios::sync_with_stdio(false);
 7     cin>>n;
 8     while (n--){
 9         cin>>s;
10         ll l=0,r=15e8;
11         while (l<=r){
12             ll mid = l+r>>1;
13             if((mid+1)*mid/2<=s){
14                 l=mid+1;
15             } else {
16                 r=mid-1;
17             }
18         }
19         cout<<r<<endl;
20     }
21 }

View Code

E:

F:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int N = 1e5+5;
 5 int n,m;
 6 struct Edge{
 7     int u,v;
 8 }e[N];
 9 int a[N],ans[N];
10 int fa[N];
11 int find(int x){
12     return x==fa[x]?x:fa[x]=find(fa[x]);
13 }
14 int main(){
15     ios::sync_with_stdio(false);
16     cin>>n>>m;
17     for(int i=1;i<=m;i++){
18         fa[i]=i;
19         cin>>e[i].v>>e[i].u;
20     }
21     for(int i=1;i<=m;i++){
22         cin>>a[i];
23     }
24     ans[m+1]=n;
25     for(int i=m;i>=1;i--){
26         int u=find(e[a[i]].u),v=find(e[a[i]].v);
27         if(u==v){
28             ans[i]=ans[i+1];
29         } else{
30             fa[u]=v;
31             ans[i]=ans[i+1]-1;
32         }
33     }
34     for(int i=2;i<=m+1;i++){
35         cout<<ans[i]<<endl;
36     }
37 }

View Code

G:

H:被坑了好久才反应过来

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 double n,a,p;
 5 int main(){
 6     scanf("%lf%lf%lf",&n,&a,&p);
 7     p/=100;
 8     double x = p-(1-p);
 9     n+=a*x;
10     printf("%.10f\n",n);
11 }

View Code

I:判点在多边形内部板子

#include <bits/stdc++.h>
using namespace std;
typedef double db;
const db eps=1e-6;
const db pi=acos(-1);
int sign(db k){if (k>eps) return 1; else if (k<-eps) return -1; return 0;
}
int cmp(db k1,db k2){return sign(k1-k2);}
int inmid(db k1,db k2,db k3){ return sign(k1-k3)*sign(k2-k3)<=0;}
struct point {db x,y;point operator + (const point &k1) const{return (point){k1.x+x,k1.y+y};}point operator - (const point &k1) const{return (point){x-k1.x,y-k1.y};}point operator * (db k1) const{return (point){x*k1,y*k1};}point operator / (db k1) const{return (point){x/k1,y/k1};}bool operator == (const point &k1) const{return cmp(x,k1.x)==0&&cmp(y,k1.y)==0;}db abs(){ return sqrt(x*x+y*y);}db abs2(){return x*x+y*y;}db dis(point k1){ return (*this-k1).abs();}bool operator<(const point &k1)const{int c = cmp(x,k1.x);if(c)return c==-1;return cmp(y,k1.y)==-1;}
};
int inmid(point k1,point k2,point k3){return inmid(k1.x,k2.x,k3.x)&&inmid(k1.y,k2.y,k3.y);}
db cross(point k1,point k2){ return k1.x*k2.y-k1.y*k2.x;}
int onS(point k1,point k2,point q){return inmid(k1,k2,q)&&sign(cross(k1-q,k2-k1))==0;}
db dot(point k1,point k2){ return k1.x*k2.x+k1.y*k2.y;}
vector<point> convexHull(vector<point> ps){int n = ps.size();if(n<=1)return ps;sort(ps.begin(),ps.end());vector<point> qs(n*2);int k = 0;for(int i=0;i<n;qs[k++]=ps[i++])while (k>1&&cross(qs[k-1]-qs[k-2],ps[i]-qs[k-2])<=0)--k;for(int i=n-2,t=k;i>=0;qs[k++]=ps[i--])while (k>t&&cross(qs[k-1]-qs[k-2],ps[i]-qs[k-2])<=0)--k;qs.resize(k-1);return qs;
}
int contain(vector<point>A,point q){//0外边int pd=0;A.push_back(A[0]);for(int i=1;i<A.size();i++){point u=A[i-1],v=A[i];if(onS(u,v,q))return 1;if (cmp(u.y,v.y)>0) swap(u,v);if(cmp(u.y,q.y)>=0||cmp(v.y,q.y)<0)continue;if(sign(cross(u-v,q-v))<0)pd^=1;}return pd<<1;
}
vector<point>p[5];
int s,r,m;
int n;
point tmp;
int main(){scanf("%d%d%d",&s,&r,&m);for(int i=1;i<=s;i++){scanf("%lf%lf",&tmp.x,&tmp.y);p[1].push_back(tmp);}for(int i=1;i<=r;i++){scanf("%lf%lf",&tmp.x,&tmp.y);p[2].push_back(tmp);}for(int i=1;i<=m;i++){scanf("%lf%lf",&tmp.x,&tmp.y);p[3].push_back(tmp);}scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lf%lf",&tmp.x,&tmp.y);if(contain(p[1],tmp)){printf("Sheena\n");} else if(contain(p[2],tmp)){printf("Rose\n");} else if(contain(p[3],tmp)){printf("Maria\n");} else{printf("Outside\n");}}
}

View Code

J:反着来维护区间和

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int N = 1e6+6;
 5 int n;
 6 int a[N],c[N];
 7 int lowbit(int k){ return k&-k;}
 8 void upd(int pos,int num){
 9     while (pos<=1e6+1){
10         c[pos]+=num;
11         pos+=lowbit(pos);
12     }
13 }
14 int sum(int pos){
15     int res = 0;
16     while (pos>0){
17         res+=c[pos];
18         pos-=lowbit(pos);
19     }
20     return res;
21 }
22 int ans[N];
23 int main(){
24     scanf("%d",&n);
25     for(int i=1;i<=n;i++){
26         cin>>a[i];a[i]++;
27         ans[i] = n-(i-1-sum(a[i]-1));
28         upd(a[i],1);
29     }
30     for(int i=1;i<=n;i++){
31         printf("%d\n",ans[i]);
32     }
33 }

View Code

K:dij加一维维护模数。。好傻逼啊我的天。。为什么我这么傻逼啊。。因为终点只能走一次所以不能来更新其他节点,判断一下就好。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int N = 2e5+5;
 5 struct Edge{int v,w,nxt;};
 6 Edge e[500010];
 7 int head[100010],cnt=0;
 8 void addEdge(int u,int v,int w){
 9     e[++cnt].v=v;
10     e[cnt].w=w;
11     e[cnt].nxt=head[u];
12     head[u]=cnt;
13 }
14 int dis[100010][3];
15 struct node{
16     int u,d,res;
17     bool operator <(const node&rhs)const {
18         return d>rhs.d;
19     }
20 };
21 int n,m;
22 void Dijkstra(){
23     for(int i=1;i<=n;i++)for(int j=0;j<3;j++)dis[i][j]=2147483647;
24     dis[1][0]=0;
25     priority_queue<node> Q;
26     Q.push((node){1,0,0});
27     while (!Q.empty()){
28         node fr=Q.top();Q.pop();
29         int u=fr.u,d=fr.d,r=fr.res;
30         if(d>dis[u][r])continue;
31         if(u==n)continue;
32         for(int i=head[u];i;i=e[i].nxt){
33             int v = e[i].v,w=e[i].w;
34             if(dis[u][r]+w<dis[v][(r+1)%3]){
35                 dis[v][(r+1)%3]=dis[u][r]+w;
36                 Q.push((node){v,dis[v][(r+1)%3],(r+1)%3});
37             }
38         }
39     }
40 }
41 int dep[N];
42 void pa(){cout<<"me"<<endl;}
43 void pb(){cout<<"Gon"<<endl;}
44 void pc(){cout<<"Killua"<<endl;}
45 int main(){
46     ios::sync_with_stdio(false);
47     cin>>n>>m;
48     int u,v,w;
49     while(m--){
50         cin>>u>>v>>w;
51         addEdge(u,v,w);
52         addEdge(v,u,w);
53     }
54     Dijkstra();
55     int a=dis[n][0],b=dis[n][1],c=dis[n][2];
56     if(a<=b&&a<=c){
57         pa();
58         if(b<=c)pb(),pc();
59         else pc(),pb();
60     } else if(b<=a&&b<=c){
61         pb();
62         if(a<=c)pa(),pc();
63         else pc(),pa();
64     } else{
65         pc();
66         if(b<=a)pb(),pa();
67         else pa(),pb();
68     }
69 }

View Code

L:为什么这么傻逼的O(n)的做法我当时会想不到呢。。。

 1 #include <bits/stdc++.h>
 2 #define pii pair<int,int>
 3 #define mk(a,b) make_pair(a,b)
 4 using namespace std;
 5 typedef long long ll;
 6 vector<int> g[100005];
 7 map<pii,int> mp;
 8 struct Node{
 9     int x,y;
10 }node[100005];
11 bool cmp(Node a,Node b){ return a.x<b.x;}
12 int n,l;
13 int dep[100005];
14 void dfs(int v){
15     for(int i=0;i<g[v].size();i++){
16         int u = g[v][i];
17         if(dep[v]+1>dep[u]) {
18             dep[u]=dep[v]+1;
19             dfs(u);
20         }
21     }
22 }
23 int main(){
24     scanf("%d%d",&n,&l);
25     node[1]={0,0};
26     mp[mk(0,0)]=0;
27     for(int i=1;i<=n;i++){
28         scanf("%d%d",&node[i].x,&node[i].y);
29     }
30     sort(node+1,node+1+n,cmp);
31     for(int i=1;i<=n;i++){
32         mp[mk(node[i].x,node[i].y)]=i;
33     }
34     node[n+1]={l,0};
35     mp[mk(l,0)]=n+1;
36     for(int i=0;i<=n;i++){
37         for(int j=1;j<=5;j++){
38             for(int k=-(5-j);k<=(5-j);k++){
39                 if(!mp.count(mk(node[i].x+j,node[i].y+k)))continue;
40                 if(abs(j)+abs(k)<=5){
41                     g[i].push_back(mp[mk(node[i].x+j,node[i].y+k)]);
42                 }
43             }
44         }
45     }
46     memset(dep,-0x3f, sizeof(dep));
47     dep[0]=0;
48     for(int i=0;i<=n;i++){
49         for(int j=0;j<g[i].size();j++){
50             int u = g[i][j];
51             dep[u]=max(dep[u],dep[i]+1);
52         }
53     }
54     printf("%d\n",dep[n+1]-1);
55 }

View Code

总结。打的太烂了。L被治了,A题好像也没带脑子。K看了两眼没兴趣,其他的没看。。。在两个小时以后就失去了生命迹象。。。

补题的话。如果下周四补了就是补了,否则应该就是不补了。。。(囤了好十几道题了我好慌啊!!!)

md等我过几天上紫了非得开教练模式爽一爽。越切越想要教练模式。。。

转载于:https://www.cnblogs.com/MXang/p/10503381.html

gym 101858相关推荐

  1. 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例

    强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...

  2. Gym - 102082G

    Gym - 102082G https://vjudge.net/problem/2198225/origin 对于数列中任意一个数,要么从最左边到它不递减,要么从最右边到到它不递减,为了满足这个条件 ...

  3. 安装gym库_强化学习Gym库学习实践(一)

    最近看了一篇研究方向相关的文章,介绍了一种DQN的应用,感觉还挺新鲜的.想着把这篇文章复现出来,就开始学习强化学习的相关知识,作为一名小白,这一路走的可是真的十分艰难(我太菜了啊!) 看了莫烦Pyth ...

  4. 强化学习环境库 Gym 发布首个社区发布版,全面兼容 Python 3.9

    作者:肖智清 来源:AI科技大本营 强化学习环境库Gym于2021年8月中旬迎来了首个社区志愿者维护的发布版Gym 0.19.该版本全面兼容Python 3.9,增加了多个新特性. 强化学习环境库的事 ...

  5. Gym迎来首个完整环境文档,强化学习入门更加简单!

    深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 编辑:OpenDeepRL OpenAI Gym是 ...

  6. Codeforces Gym 100513G G. FacePalm Accounting 暴力

    G. FacePalm Accounting Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100513 ...

  7. Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/77144590 和其它的机器学习方向一样,强化学习(Reinforcement Learni ...

  8. OpenAI Gym介绍

    上篇博客介绍了OpenAI Gym.OpenAI Gym与强化学习以及OpenAI Gym的安装,接下来运行一个demo体验一下OpenAI Gym这个平台,以CartPole(倒立摆)为例,在工作目 ...

  9. 独家 | 使用Python的OpenAI Gym对Deep Q-Learning的实操介绍(附学习资源)

    作者:ANKIT CHOUDHARY 翻译:张睿毅 校对:吴金笛 本文4300字,建议阅读10+分钟. 本文作者通过实战介绍了Deep Q-Learning的概念. 导言 我一直对游戏着迷.在紧凑的时 ...

最新文章

  1. 用c语言编写通讯录程序,学C三个月了,学了文件,用C语言写了个通讯录程序
  2. jQuery.delegate() 函数详解
  3. js 识别汉字和全角字符
  4. 安卓手机运行ios教程_英雄联盟手游日服怎么注册?安卓/ios注册下载教程! 18183手机游戏网...
  5. 【从0开始机器学习】神经网络识别手写字符!
  6. 专注技术,回归本质,这就是太平洋未来科技的创新之处...
  7. 手动安装.app到模拟器simulator, iOS XCode 11
  8. 贴片铝电容识别及型号_贴片铝电解电容封装尺寸定义.pdf
  9. 约瑟夫问题python列表_Python实现约瑟夫问题
  10. 简单的在线出入库管理用哪个系统好
  11. 教你如何写Bug:Google Guava源码分析之——Joiner
  12. bzoj 4484 [Jsoi2015]最小表示
  13. 通过阿里云API 身份证图片或拍身份证 读取身份证正反面信息
  14. 我认识的七个理想主义者
  15. 获取应用包名、获取应用名称、获取MetaData值、获取应用所有Permission、获取permission对应描述信息
  16. 用普通话软件测试为什么分数都很低,有没有练习普通话的软件?练习普通话软件推荐...
  17. python爬虫之Scrapy介绍八——Scrapy-分布式(以爬取京东读书为示例)
  18. 软考必考之有关计算机的知识产权基础
  19. 雷达图的4种绘制方法
  20. [蓝桥杯 2018 国 B] 搭积木 (区间dp + 二维前缀和优化)

热门文章

  1. makefile实例【转载】
  2. Flex Skin Design Extensions Flex Component Kit 下载.
  3. 打包工具的配置教程见的多了,但它们的运行原理你知道吗?
  4. LintCode: Hash Function
  5. iOS Mac JSON To Model
  6. asp.net中通过html格式导出excel文件
  7. tyvj1068 STR
  8. LINQ 的查询执行何时是延迟执行,何时是立即执行,以及查询的复用
  9. 提示No Launcher activity found
  10. Android UI之ImageView