Educational Codeforces Round 5
分类:
IT文章
•
2025-01-07 19:50:21
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==-1 && sb==-1)return '=';
if(sa==-1)return '<';if(sb==-1)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=-1;
for(int i=0;i<a.size();i++)if(a[i]!='0'){sa=i;break;}
for(int i=0;i<b.size();i++)if(b[i]!='0'){sb=i;break;}
return printf("%c
",cmp()),0;
}
View Code
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=1;i<=n;i++)
{
mi=2147483647;
for(int j=1;j<=m;j++)
scanf("%d",&x),mi=min(mi,x);
ans=max(ans,mi);
}
return printf("%d
",ans),0;
}
View Code
#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=1;i<=n;i++)
for(int j=1;j<=m;j++)
fa[i][j].x=i,fa[i][j].y=j;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
s[i][j]=read();
if(s[i][j] && s[i-1][j])
Union(i,j,i-1,j);
if(s[i][j] && s[i][j-1])
Union(i,j,i,j-1);
}
for(int i=1;i<=n;i++)
for(int j=1;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=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
if(s[i][j])
printf(".");
else
{
int ans=1;
if(s[i-1][j])
ans+=si[Find(i-1,j).x][Find(i-1,j).y];
if(s[i+1][j])
if(!equal(i+1,j,i-1,j))
ans+=si[Find(i+1,j).x][Find(i+1,j).y];
if(s[i][j-1])
if(!equal(i,j-1,i-1,j))
if(!equal(i,j-1,i+1,j))
ans+=si[Find(i,j-1).x][Find(i,j-1).y];
if(s[i][j+1])
if(!equal(i,j+1,i-1,j))
if(!equal(i,j+1,i+1,j))
if(!equal(i,j+1,i,j-1))
ans+=si[Find(i,j+1).x][Find(i,j+1).y];
printf("%d",ans%10);
}
printf("
");
}
return 0;
}