Educational Codeforces Round 53 (Rated for Div. 2)
http://codeforces.com/contest/1073
A. Diverse Substring
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long
- #define minv 1e-6
- #define inf 1e9
- #define pi 3.1415926536
- #define nl 2.7182818284
- const ll mod=1e9+;//
- const int maxn=1e3+;
- char s[maxn];
- int main()
- {
- int n,i;
- scanf("%d",&n);
- scanf("%s",s);
- for (i=;i<=n-;i++)
- if (s[i]!=s[i+])
- break;
- if (i==n-)
- printf("NO");
- else
- {
- printf("YES\n");
- printf("%c%c",s[i],s[i+]);
- }
- return ;
- }
B. Vasya and Books
- #include <iostream>
- #include <cstdio>
- using namespace std;
- const int maxn=2e5+;
- int f[maxn];
- int main()
- {
- int n,a,v=,i;
- scanf("%d",&n);
- for (i=;i<=n;i++)
- {
- scanf("%d",&a);
- f[a]=i;
- }
- for (i=;i<=n;i++)
- {
- scanf("%d",&a);
- if (i!=)
- printf(" ");
- if (f[a]<v)
- printf("");
- else
- printf("%d",f[a]-v);
- v=max(f[a],v);
- }
- return ;
- }
C. Vasya and Robot
奇偶,负数取模
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long
- const int maxn=2e5+;
- const ll inf=1e9;
- int px[maxn],py[maxn];
- int main()
- {
- char c;
- int n,x,y,ax,ay,i,l,r,m,re;
- scanf("%d\n",&n);
- for (i=;i<=n;i++)
- {
- scanf("%c",&c);
- if (c=='U')
- x=,y=;
- else if (c=='D')
- x=,y=-;
- else if (c=='L')
- x=-,y=;
- else
- x=,y=;
- px[i]=px[i-]+x;
- py[i]=py[i-]+y;
- }
- scanf("%d%d",&ax,&ay);
- if (px[n]==ax && py[n]==ay)
- {
- printf("");
- return ;
- }
- if (abs(ax+ay+n)%==)
- {
- printf("-1");
- return ;
- }
- re=inf;
- for (i=;i<=n;i++)
- {
- l=i;
- r=n;
- while (l<=r)
- {
- m=(l+r)>>;
- ///change [i,m] ; use [1,i-1] [m+1,n]
- if (m-i+>=abs(px[i-]+px[n]-px[m]-ax)+abs(py[i-]+py[n]-py[m]-ay))
- r=m-;
- else
- l=m+;
- }
- if (l!=n+)
- re=min(re,l-i+);
- }
- if (re==inf)
- re=-;
- printf("%d",re);
- return ;
- }
D. Berland Fair
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long
- const int maxn=2e5+;
- int nex[maxn],a[maxn];
- int main()
- {
- int n,i,j,g;
- ll m,tot=,num=;
- scanf("%d%lld",&n,&m);
- for (i=;i<n;i++)
- scanf("%d",&a[i]),tot+=a[i];
- for (i=;i<n;i++)
- nex[i]=(i+)%n;
- g=n;
- i=;
- j=n-;
- while (nex[i]!=i)
- {
- num+=m/tot*g;
- m%=tot;
- while (nex[i]!=i)
- {
- if (a[i]<=m)
- {
- m-=a[i];
- num++;
- j=i;
- }
- else
- {
- nex[j]=nex[i];
- tot-=a[i];
- g--;
- }
- i=nex[i];
- if (m>=tot)
- break;
- }
- }
- num+=m/a[i];
- cout<<num;
- return ;
- }
- /*
- 1 100
- 1
- 3 1000
- 1 2 100
- */
E. Segment Sum
代码是错的,以待后续埋坑
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long
- const ll mod=;
- const double minv=1e-;
- ll sum=,shi[],k,f[][];
- void work(ll a,int w,int g,int hav,ll num,int ori,int cond)
- {
- int s,gg,i,j,c;
- if (a==)
- return;
- s=a/shi[w];
- for (i=;i<=s;i++)
- {
- gg=g-(!((hav>>i) & ) && (!(i== && ori==)));
- if (gg>=)
- {
- if (i<s)
- {
- /**
- 这一位选的是i,
- 除去这一位,还有w位,
- 从gg个数中选j个数作为需要添加的数(之前没出现过的),
- 每一位都有k-gg+j种选择
- **/
- f[][]=;
- for (j=;j<=w;j++)
- {
- f[j][]=f[j-][]*(k-gg)%mod;
- ///already k-gg numbers
- sum=(sum+f[j-][]* sum of k-gg numbers )%mod;
- for (c=;c<=min(gg,j);c++)
- sum=(sum+f[j-][c]* k-gg+c numbers + f[j-][c-]* any number(random average of gg numbers))
- f[j][c]=(f[j-][c]*(k-gg+c)+f[j-][c-]*(-(k-gg+c-)))%mod;
- }
- for (c=;c<=min(gg,w);c++)
- sum=(sum+f[w][c]*cond)%mod;
- ///geshu
- // f[0][0]=1;
- // for (j=1;j<=w;j++)
- // {
- // f[j][0]=f[j-1][0]*(k-gg)%mod;
- // for (c=1;c<=min(gg,j);c++)
- // f[j][c]=(f[j-1][c]*(k-gg+c)+f[j-1][c-1]*(10-(k-gg+c-1)))%mod;
- // }
- // for (c=0;c<=min(gg,w);c++)
- // sum=(sum+f[w][c]*cond)%mod;
- }
- else
- work(a%shi[w],w-,gg,hav|(<<i),ori&(i==),cond);
- }
- }
- }
- int main()
- {
- ll l,r;
- int i,w;
- scanf("%lld%lld%d",&l,&r,&k);
- shi[]=;
- for (i=;i<=;i++)
- shi[i]=shi[i-]*;
- w=log(r+minv)/log();
- work(r,w,k,,,,);
- if (l!=)
- {
- w=log(l-+minv)/log();///l=1???
- work(l-,w,k,,,,-);
- }
- printf("%lld",(sum+mod)%mod);
- return ;
- }
Educational Codeforces Round 53 (Rated for Div. 2)的更多相关文章
- Educational Codeforces Round 53 (Rated for Div. 2) (前五题题解)
这场比赛没有打,后来补了一下,第五题数位dp好不容易才搞出来(我太菜啊). 比赛传送门:http://codeforces.com/contest/1073 A. Diverse Substring ...
- Educational Codeforces Round 53 (Rated for Div. 2) E. Segment Sum (数位dp求和)
题目链接:https://codeforces.com/contest/1073/problem/E 题目大意:给定一个区间[l,r],需要求出区间[l,r]内符合数位上的不同数字个数不超过k个的数的 ...
- [codeforces][Educational Codeforces Round 53 (Rated for Div. 2)D. Berland Fair]
http://codeforces.com/problemset/problem/1073/D 题目大意:有n个物品(n<2e5)围成一个圈,你有t(t<1e18)元,每次经过物品i,如果 ...
- Educational Codeforces Round 53 (Rated for Div. 2) E. Segment Sum
https://codeforces.com/contest/1073/problem/E 题意 求出l到r之间的符合要求的数之和,结果取模998244353 要求:组成数的数位所用的数字种类不超过k ...
- Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot 【二分 + 尺取】
任意门:http://codeforces.com/contest/1073/problem/C C. Vasya and Robot time limit per test 1 second mem ...
- Educational Codeforces Round 53 (Rated for Div. 2)G. Yet Another LCP Problem
题意:给串s,每次询问k个数a,l个数b,问a和b作为后缀的lcp的综合 题解:和bzoj3879类似,反向sam日神仙...lcp就是fail树上的lca.把点抠出来建虚树,然后在上面dp即可.(感 ...
- Educational Codeforces Round 53 (Rated for Div. 2) D. Berland Fair
题意:一个人 有T块钱 有一圈商店 分别出售 不同价格的东西 每次经过商店只能买一个 并且如果钱够就必须买 这个人一定是从1号店开始的!(比赛的时候读错了题,以为随意起点...)问可以买多少个 ...
- Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot
题意:给出一段操作序列 和目的地 问修改(只可以更改 不可以删除或添加)该序列使得最后到达终点时 所进行的修改代价最小是多少 其中代价的定义是 终点序号-起点序号-1 思路:因为代价是终点序号减去 ...
- Educational Codeforces Round 53 (Rated for Div. 2) A Diverse Substring
传送门 https://www.cnblogs.com/violet-acmer/p/10163375.html 题意: 给出串是多态的定义“长度为 n 的串 s ,当串 s 中所有字母出现的次数严格 ...
随机推荐
- linux audit审计(7-1)--读懂audit日志
auid=0 auid记录Audit user ID,that is the loginuid.当我使用lbh用户登录系统时,再访问audit_test,此时记录的auid为1001,具体日志如下: ...
- 在文件保存中 os.getcwd() os.listdir() os.makedirs() os.mkdir() xx.join() ... 等函数 的使用介绍
path = 'C:\\Users\\zhangjunming\\Desktop\\PycharmProjects\\my_mgm' 1.xx.join(obj) 以xx为分隔符 对obj中的元素 ...
- python工具使用笔记
1.pip pip是Python官方推荐的包管理工具,在doc界面直接使用pip或者pip3命令即可,例如安装gensim: C:\Users\kayan.sjc>pip3 install -- ...
- C#后台绑定select
- C#使用WebClient下载文件到本地目录
C#使用WebClient下载文件到本地目录. 1.配置本地目录路径 <appSettings> <!--文件下载目录--> <add key="Downloa ...
- matlab——sparse函数和full函数
转载:http://www.cnblogs.com/lihuidashen/p/3435883.html matlab——sparse函数和full函数(稀疏矩阵和非稀疏矩阵转换) 函数功能:生成 ...
- Docker自制CentOS镜像
系统环境:CentOS 7.3 将yum源切换到阿里源 可以直接写成一个脚本 #!/bin/sh mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos ...
- 使用IDEA部署项目到远程服务器
1.选择Tools -> Deployment -> Configuration... 2.配置连接信息,Linux服务器一般都选择SFTP 3.配置本地上传文件路径.远程上传文件路径 4 ...
- hosts学习整理
hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库” (测试发现,对于https 协议的网站无效,果然https还是有作用的,不会被屏蔽) ...
- Google Apps的单点登录-谷歌使用的单点登录
简述: Customer :客户 Google:谷歌 Identity Provider:身份提供者安全断言标记语言(英语:Security Assertion Markup Language,简称S ...