Educational Codeforces Round 5
616A - Comparing Two Long Integers 20171121
直接暴力莽就好了...没什么好说的
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
string a,b;int sa,sb;
char cmp()
{
if(sa==- && sb==-)return '=';
if(sa==-)return '<';if(sb==-)return '>';
if(a.size()-sa>b.size()-sb)return '>';
if(a.size()-sa<b.size()-sb)return '<';
for(int i=sa,j=sb;i<a.size();i++,j++)
if(a[i]!=b[j])return (a[i]<b[j])?'<':'>';
return '=';
}
int main()
{
cin>>a;cin>>b;sa=sb=-;
for(int i=;i<a.size();i++)if(a[i]!=''){sa=i;break;}
for(int i=;i<b.size();i++)if(b[i]!=''){sb=i;break;}
return printf("%c\n",cmp()),;
}
616B - Dinner with Emma 20171121
在每行的最小值中取一个最大值输出就好了
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,x,mi,ans;
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
mi=;
for(int j=;j<=m;j++)
scanf("%d",&x),mi=min(mi,x);
ans=max(ans,mi);
}
return printf("%d\n",ans),;
}
616C - The Labyrinth 20171121
简单并查集
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#define N 1150
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
struct rua
{
int x,y;
}fa[N][N];
int n,m,si[N][N];
bool s[N][N];
char ch;
bool read()
{
ch=getchar();
while(ch!='.' && ch!='*')
ch=getchar();
return ch=='.';
}
rua Find(int x,int y)
{
if(fa[x][y].x==x && fa[x][y].y==y)return fa[x][y];
else return fa[x][y]=Find(fa[x][y].x,fa[x][y].y);
}
void Union(int xx,int xy,int yx,int yy)
{
fa[Find(xx,xy).x][Find(xx,xy).y]=Find(yx,yy);
}
bool equal(int xx,int xy,int yx,int yy)
{
return fa[xx][xy].x==fa[yx][yy].x && fa[xx][xy].y==fa[yx][yy].y;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
fa[i][j].x=i,fa[i][j].y=j;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
s[i][j]=read();
if(s[i][j] && s[i-][j])
Union(i,j,i-,j);
if(s[i][j] && s[i][j-])
Union(i,j,i,j-);
}
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
fa[i][j].x=Find(i,j).x;
fa[i][j].y=Find(i,j).y;
si[Find(i,j).x][Find(i,j).y]++;
}
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
if(s[i][j])
printf(".");
else
{
int ans=;
if(s[i-][j])
ans+=si[Find(i-,j).x][Find(i-,j).y];
if(s[i+][j])
if(!equal(i+,j,i-,j))
ans+=si[Find(i+,j).x][Find(i+,j).y];
if(s[i][j-])
if(!equal(i,j-,i-,j))
if(!equal(i,j-,i+,j))
ans+=si[Find(i,j-).x][Find(i,j-).y];
if(s[i][j+])
if(!equal(i,j+,i-,j))
if(!equal(i,j+,i+,j))
if(!equal(i,j+,i,j-))
ans+=si[Find(i,j+).x][Find(i,j+).y];
printf("%d",ans%);
}
printf("\n");
}
return ;
}
616D - Longest k-Good Segment 20171121
先找出当\(l=1\)时\(r\)的最大值,然后O(n)扫一遍。即先增大\(l\)的值到刚好不同元素个数\(<k\),之后再增大\(r\)的值,这种做法在CF中好像叫做\(two \ pointers\),在Educational Codeforces Round 50的D题里也有此算法的一个应用
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#define N 1000001
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int ansl,ansr,n,k,l,r,s,a[N],b[N];
int main()
{
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
for(r=;s<=k && r<=n;r++)
s+=(!b[a[r]]),b[a[r]]++;
r--;if(s>k)s--,b[a[r--]]--;
l=ansl=,ansr=r;
while(r<n)
{
for(l;s==k;l++)
b[a[l]]--,s-=(!b[a[l]]);
for(r=r+;s<=k && r<=n;r++)
s+=(!b[a[r]]),b[a[r]]++;
r--;if(s>k)s--,b[a[r--]]--;
if(s==k && ansr-ansl<r-l)
ansr=r,ansl=l;
}
printf("%d %d\n",ansl,ansr);
}
616E - Sum of Remainders 20171121
直接分块做就好了
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define LL long long
#define MOD 1000000007
LL n,m,nexti,ans,an;
LL get_ans(LL a,LL b,LL n)
{
if(n&)an=((n+)/)%MOD*(n%MOD)%MOD;
else an=(n/)%MOD*((n+)%MOD)%MOD;
an*=a%MOD,an%=MOD,an+=(n+)%MOD*(b%MOD)%MOD;
return an%MOD;
}
int main()
{
scanf("%I64d%I64d",&n,&m);
for(LL i=;i<=min(m,n);i=nexti+)
{
nexti=min(m,n/(n/i));
ans+=get_ans(n/i,n%nexti,((n%i)-(n%nexti))/(n/i));
ans%=MOD;
}
if(n<m)ans+=(m-n)%MOD*(n%MOD)%MOD;
printf("%I64d\n",ans%MOD);
return ;
}
616F - Expensive Strings 20180917
[Educational Round 5][Codeforces 616F. Expensive Strings]
Educational Codeforces Round 5的更多相关文章
- [Educational Codeforces Round 16]E. Generate a String
[Educational Codeforces Round 16]E. Generate a String 试题描述 zscoder wants to generate an input file f ...
- [Educational Codeforces Round 16]D. Two Arithmetic Progressions
[Educational Codeforces Round 16]D. Two Arithmetic Progressions 试题描述 You are given two arithmetic pr ...
- [Educational Codeforces Round 16]C. Magic Odd Square
[Educational Codeforces Round 16]C. Magic Odd Square 试题描述 Find an n × n matrix with different number ...
- [Educational Codeforces Round 16]B. Optimal Point on a Line
[Educational Codeforces Round 16]B. Optimal Point on a Line 试题描述 You are given n points on a line wi ...
- [Educational Codeforces Round 16]A. King Moves
[Educational Codeforces Round 16]A. King Moves 试题描述 The only king stands on the standard chess board ...
- Educational Codeforces Round 6 C. Pearls in a Row
Educational Codeforces Round 6 C. Pearls in a Row 题意:一个3e5范围的序列:要你分成最多数量的子序列,其中子序列必须是只有两个数相同, 其余的数只能 ...
- Educational Codeforces Round 9
Educational Codeforces Round 9 Longest Subsequence 题目描述:给出一个序列,从中抽出若干个数,使它们的公倍数小于等于\(m\),问最多能抽出多少个数, ...
- Educational Codeforces Round 37
Educational Codeforces Round 37 这场有点炸,题目比较水,但只做了3题QAQ.还是实力不够啊! 写下题解算了--(写的比较粗糙,细节或者bug可以私聊2333) A. W ...
- Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship
Problem Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...
- Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems(动态规划+矩阵快速幂)
Problem Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec P ...
随机推荐
- css层叠规则,优先级算法
前言 层叠样式表CSS最基本的一个特性就是层叠.冲突的声明通过层叠进行排序,由此确定最终的文档表示.而这个过程的核心就是选择器及其相关声明的特殊性.重要性.来源及继承机制.本文将详细介绍CSS层叠 特 ...
- redis发布/订阅
发布订阅简介 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息,消息之间通过channel传递. 准备工作 两台安装了redis的机器(虚拟 ...
- [再寄小读者之数学篇](2014-04-18 from 352558840@qq.com [南开大学 2014 年高等代数考研试题]反对称矩阵的组合)
(2014-04-18 from 352558840@qq.com [南开大学 2014 年高等代数考研试题]反对称矩阵的组合) 设 ${\bf A},{\bf B}$ 都是反对称矩阵, 且 ${\b ...
- Hibernate 4.3.11 下问题的解决
2017.01.09 问题:hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hib ...
- 分别基于TensorFlow、PyTorch、Keras的深度学习动手练习项目
×下面资源个人全都跑了一遍,不会出现仅是字符而无法运行的状况,运行环境: Geoffrey Hinton在多次访谈中讲到深度学习研究人员不要仅仅只停留在理论上,要多编程.个人在学习中也体会到单单的看理 ...
- spring整合junit
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test& ...
- uap
1.UAP 从前端到后端 详细教程 (一) 博主友好几篇相关的文章
- 肺结节CT影像特征提取(二)——肺结节CT图像特征提取算法描述
摘自本人毕业论文<肺结节CT影像特征提取算法研究> 医学图像特征提取可以认为是基于图像内容提取必要特征,医学图像中需要什么特征基于研究需要,提取合适的特征.相对来说,医学图像特征提取要求更 ...
- DataStructure-链表实现指数非递减一元多项式的求和
// 2-链表实现多项式的求和.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<stdio.h> #inclu ...
- 解决tomcat端口被占用:Port 8005 required by Tomcat v7.0 Server at localhost is already in use
问题提示8005端口被占用 首先:在cmd下,输入 netstat -ano|findstr 8005 (什么端口号被占用就输入什么端口号),回车 再输入 taskkill /pid 20 ...