突然发现上一场edu忘记写了(

  A:签到。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
#define N 10010
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<'0'||c>'9')) c=getchar();return c;}
int gcd(int n,int m){return m==0?n:gcd(m,n%m);}
int read()
{
int x=0,f=1;char c=getchar();
while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
return x*f;
}
int n,a[N],ans;
bool flag[N];
signed main()
{
#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
#endif
n=read();
for (int i=1;i<=n;i++) a[i]=read();
for (int i=1;i<=n;i++)
{
int x=a[i];
ans++;
while (i<x)
{
i++;
x=max(x,a[i]);
}
}
cout<<ans;
return 0;
//NOTICE LONG LONG!!!!!
}

  B:显然仅当最左为>或最右为<时才能消去整个字符串。于是找到最左的>和最右的<取min即可。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
#define N 110
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<'0'||c>'9')) c=getchar();return c;}
int gcd(int n,int m){return m==0?n:gcd(m,n%m);}
int read()
{
int x=0,f=1;char c=getchar();
while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
return x*f;
}
int T,n;
char s[N];
signed main()
{
#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
#endif
T=read();
while (T--)
{
n=read();
scanf("%s",s+1);
int ans=n-1;
int last=0;
for (int i=n;i>=1;i--) if (s[i]=='<') {last=i;break;}
ans=min(ans,n-last);
int first=n;
for (int i=1;i<=n;i++) if (s[i]=='>') {first=i;break;}
ans=min(ans,first-1);
cout<<ans<<endl;
}
return 0;
//NOTICE LONG LONG!!!!!
}

  C:枚举beauty最小值,则显然应该选择beauty不小于该数的前k大。堆维护。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
#define ll long long
#define N 300010
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<'0'||c>'9')) c=getchar();return c;}
int gcd(int n,int m){return m==0?n:gcd(m,n%m);}
int read()
{
int x=0,f=1;char c=getchar();
while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
return x*f;
}
int n,m;
struct data
{
int x,y;
bool operator <(const data&a) const
{
return y<a.y;
}
}a[N];
priority_queue<int,vector<int>,greater<int> > q;
signed main()
{
#ifndef ONLINE_JUDGE
freopen("c.in","r",stdin);
freopen("c.out","w",stdout);
#endif
n=read(),m=read();
for (int i=1;i<=n;i++) a[i].x=read(),a[i].y=read();
sort(a+1,a+n+1);
ll tot=0,ans=0;
for (int i=n;i>=1;i--)
{
q.push(a[i].x);tot+=a[i].x;
if (n-i+1>m) tot-=q.top(),q.pop();
ans=max(ans,tot*a[i].y);
}
cout<<ans;
return 0;
//NOTICE LONG LONG!!!!!
}

  D:大胆猜想不用证明。即让1与所有相邻点配对。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
#define ll long long
#define N 510
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<'0'||c>'9')) c=getchar();return c;}
int gcd(int n,int m){return m==0?n:gcd(m,n%m);}
int read()
{
int x=0,f=1;char c=getchar();
while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
return x*f;
}
int n,f[N][N];
signed main()
{
#ifndef ONLINE_JUDGE
freopen("c.in","r",stdin);
freopen("c.out","w",stdout);
#endif
n=read();
int ans=0;
for (int i=2;i<n;i++) ans+=i*(i+1);
cout<<ans;
return 0;
//NOTICE LONG LONG!!!!!
}

  E:不存在奇回文串的充要条件是不存在长度为3的回文串。黑白染色(也就是奇偶分开考虑),则相当于相邻数不同。已确定的数将序列分割成若干区间,显然这些区间之间无关。然后随便dp一发。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
#define int long long
#define N 200010
#define P 998244353
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<'0'||c>'9')) c=getchar();return c;}
int gcd(int n,int m){return m==0?n:gcd(m,n%m);}
int read()
{
int x=0,f=1;char c=getchar();
while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
return x*f;
}
int n,m,a[N],b[N],c[N],f[N],g[N],ans;
int ksm(int a,int k)
{
int s=1;
for (;k;k>>=1,a=1ll*a*a%P) if (k&1) s=1ll*s*a%P;
return s;
}
int calc(int *a,int n)
{
int ans=1;
bool flag=0;
for (int i=1;i<=n;i++) if (a[i]!=-1) {flag=1;break;}
if (!flag)
{
ans=m;for (int i=2;i<=n;i++) ans=1ll*ans*(m-1)%P;return ans;
}
int l=1,r=n;
if (a[1]==-1)
{
while (a[l+1]==-1) l++;
for (int i=1;i<=l;i++) ans=1ll*ans*(m-1)%P;
l++;
}
if (a[n]==-1)
{
while (a[r-1]==-1) r--;
for (int i=n;i>=r;i--) ans=1ll*ans*(m-1)%P;
r--;
}
for (int i=l;i<=r;i++)
{
if (i==r) break;
int t=i+1;
while (a[t]==-1) t++;
if (a[i]==a[t]) ans=1ll*ans*f[t-i]%P;
else ans=1ll*ans*g[t-i]%P;
i=t-1;
}
return ans;
}
signed main()
{
#ifndef ONLINE_JUDGE
freopen("c.in","r",stdin);
freopen("c.out","w",stdout);
#endif
n=read(),m=read();
for (int i=1;i<=n;i++) a[i]=read();
f[0]=1;for (int i=1;i<=n;i++) f[i]=(ksm(m-1,i-1)+P-f[i-1])%P;
g[0]=0;for (int i=1;i<=n;i++) g[i]=(ksm(m-1,i-1)+P-g[i-1])%P;
int u=0,v=0;
for (int i=1;i<=n;i++)
if (i&1) b[++u]=a[i];
else c[++v]=a[i];
ans=1ll*calc(b,u)*calc(c,v)%P;
cout<<ans;
return 0;
//NOTICE LONG LONG!!!!!
}

  F:https://www.cnblogs.com/Gloid/p/9392532.html 用上这一场的D的结论(woc怎么看着这么羞耻),然后相当于动态图连通性问题,码了个线段树分治+带撤销并查集,得卡卡常。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<map>
#include<vector>
using namespace std;
#define ll long long
#define int long long
#define N 300010
#define mp(x,y) make_pair((x),(y))
#define left(x) (x)
#define right(x) ((x)+n)
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<'0'||c>'9')) c=getchar();return c;}
int gcd(int n,int m){return m==0?n:gcd(m,n%m);}
int read()
{
int x=0,f=1;char c=getchar();
while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
return x*f;
}
typedef pair<int,int> pii;
int n,t,fa[N<<1],lsize[N<<1],rsize[N<<1],L[N<<2],R[N<<2],lazy[N<<2];
ll ans,Q[N];
map<int,int> id[N];
vector<pii> edge[N<<2];
struct data{int x,y,z,l,r;
}a[N];
vector<data> stk[N<<2];
void build(int k,int l,int r)
{
L[k]=l,R[k]=r;
if (l==r) return;
int mid=l+r>>1;
build(k<<1,l,mid);
build(k<<1|1,mid+1,r);
}
void add(int k,int l,int r,int x,int y)
{
if (L[k]==l&&R[k]==r) {edge[k].push_back(mp(x,y));return;}
int mid=L[k]+R[k]>>1;
if (r<=mid) add(k<<1,l,r,x,y);
else if (l>mid) add(k<<1|1,l,r,x,y);
else add(k<<1,l,mid,x,y),add(k<<1|1,mid+1,r,x,y);
}
int find(int x){return fa[x]==x?x:find(fa[x]);}
ll calc(int x){return 1ll*lsize[x]*rsize[x];}
void solve(int k)
{
lazy[k]=ans;
for (int i=0;i<edge[k].size();i++)
{
int x=edge[k][i].first,y=edge[k][i].second;
int p=find(left(x)),q=find(right(y));
if (p!=q)
{
ans-=calc(p);ans-=calc(q);
if (lsize[p]+rsize[p]<rsize[p]+rsize[q]) swap(p,q);
stk[k].push_back((data){q,p,fa[q],lsize[p],rsize[p]});
fa[q]=p;lsize[p]+=lsize[q];rsize[p]+=rsize[q];
ans+=calc(p);
}
}
if (L[k]==R[k]) Q[L[k]]=ans;
if (L[k]<R[k]) solve(k<<1),solve(k<<1|1);
ans=lazy[k];
for (int i=((int)stk[k].size())-1;i>=0;i--)
{
fa[stk[k][i].x]=stk[k][i].z;
lsize[stk[k][i].y]=stk[k][i].l;
rsize[stk[k][i].y]=stk[k][i].r;
}
}
signed main()
{
#ifndef ONLINE_JUDGE
freopen("f.in","r",stdin);
freopen("f.out","w",stdout);
#endif
n=read();
for (int i=1;i<=n;i++) fa[left(i)]=left(i),fa[right(i)]=right(i),lsize[left(i)]=1,rsize[right(i)]=1;
for (int i=1;i<=n;i++)
{
int x=read(),y=read();
if (id[x][y]==0)
{
id[x][y]=++t;
a[t].x=x,a[t].y=y,a[t].l=i;
}
else
{
a[id[x][y]].r=i-1;
id[x][y]=0;
}
}
for (int i=1;i<=t;i++) if (a[i].r==0) a[i].r=n;
build(1,1,n);
for (int i=1;i<=t;i++) add(1,a[i].l,a[i].r,a[i].x,a[i].y);
solve(1);
for (int i=1;i<=n;i++) printf("%I64d ",Q[i]);
return 0;
//NOTICE LONG LONG!!!!!
}

  G:没补。

  小小号的第一场。因为E一直wa非常自闭。result:rank 98 rating +214

Educational Codeforces Round 62 Div. 2的更多相关文章

  1. Educational Codeforces Round 84 (Div. 2)

    Educational Codeforces Round 84 (Div. 2) 读题读题读题+脑筋急转弯 = =. A. Sum of Odd Integers 奇奇为奇,奇偶为偶,所以n,k奇偶性 ...

  2. Educational Codeforces Round 62 (Rated for Div. 2) Solution

    最近省队前联考被杭二成七南外什么的吊锤得布星,拿一场Div. 2恢复信心 然后Div.2 Rk3.Div. 1+Div. 2 Rk9,rating大涨200引起舒适 现在的Div. 2都怎么了,最难题 ...

  3. Educational Codeforces Round 62 (Rated for Div. 2)

    A. Detective Book 题意:一个人读书  给出每一章埋的坑在第几页可以填完 . 一个人一天如果不填完坑他就会一直看 问几天能把这本书看完 思路:模拟一下 取一下过程中最大的坑的页数  如 ...

  4. Educational Codeforces Round 62 (Rated for Div. 2) C 贪心 + 优先队列 + 反向处理

    https://codeforces.com/contest/1140/problem/C 题意 每首歌有\(t_i\)和\(b_i\)两个值,最多挑选m首歌,使得sum(\(t_i\))*min(\ ...

  5. Educational Codeforces Round 62 (Rated for Div. 2)C

    题目链接 :C. Playlist #include<bits/stdc++.h> using namespace std; #define maxn 300005 #define LL ...

  6. Educational Codeforces Round 62 (Rated for Div. 2) - C Playlist

    当时题意看错了...不过大致思路是对的,唯一没有想到的就是用优先队列搞这个东西,真是不该啊... 题意大概就是,有N首歌,N首歌有两个东西,一个是长度Ti,一个是美丽值Bi,你最多可以选择K首歌, 这 ...

  7. C. Playlist Educational Codeforces Round 62 (Rated for Div. 2) 贪心+优先队列

    C. Playlist time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  8. Educational Codeforces Round 62 (Rated for Div. 2)E(染色DP,构造,思维,组合数学)

    #include<bits/stdc++.h>using namespace std;const long long mod=998244353;long long f[200007][2 ...

  9. Educational Codeforces Round 58 Div. 2 自闭记

    明明多个几秒就能场上AK了.自闭. A:签到. #include<iostream> #include<cstdio> #include<cmath> #inclu ...

随机推荐

  1. Js-函数式编程

    前言 JavaScript是一门多范式语言,即可使用OOP(面向对象),也可以使用FP(函数式),由于笔者最近在学习React相关的技术栈,想进一步深入了解其思想,所以学习了一些FP相关的知识点,本文 ...

  2. jdbc封装的类

    JDBCUtil,java package cn.qst.util; import java.sql.Connection;import java.sql.DriverManager;import j ...

  3. AngularJS实现的自定义过滤器简单示例

    本文实例讲述了AngularJS实现的自定义过滤器.分享给大家供大家参考,具体如下: 1.自定义限制字数的过滤器 啥也不说了直接上代码吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  4. vue框架入门和ES6介绍

    vue框架入门和ES6介绍 vue-mvvm模式,vue是一种轻量级的前端框架,主要为模板渲染,数据同步,组件化,模块化,路由等. https://cn.vuejs.org/ 源码:https://g ...

  5. Android远程桌面助手(B1371)

    Android远程桌面助手(B1371),下载:https://files.cnblogs.com/files/we-hjb/ARDC%28B1371%29.7z 1.增加了对超大分辨率4320*21 ...

  6. HTTP各个status code是什么意思【已解决】

    在介绍状态码之前,要简单讲一下为什么要有状态码这个东西.计算机之间的通信以协议为共同基础,客户端和服务端都按照协议的约定进行通信.HTTP的状态码就在HTTP的协议内,规定了很多的状态.客户端请求服务 ...

  7. 数据库原理 - 序列4 - 事务是如何实现的? - Redo Log解析(续)

    > 本文节选自<软件架构设计:大型网站技术架构与业务架构融合之道>第6.4章节. 作者微信公众号:> 架构之道与术.进入后,可以加入书友群,与作者和其他读者进行深入讨论.也可以 ...

  8. iOS 多线程 NSOperation、NSOperationQueue

    1. NSOperation.NSOperationQueue 简介 NSOperation.NSOperationQueue 是苹果提供给我们的一套多线程解决方案.实际上 NSOperation.N ...

  9. git pull以及git pull --rebase

    git pull的作用是将远程库中的更改代码合并到当前分支中,默认为:git fetch + git merge git fetch 的作用就相当于是从远程库中获取最新版本到本地分支,不会自动进行gi ...

  10. wireshark抓包,安装及简单使用

    跟着实验室师兄尝试做流量分析,趁着离期末考试还有几天,尽快把环境搭好. 采集:自动化测试monkeyrunner,ok 抓包 charles/Wireshark,ok 限制其他应用运行App Moun ...