首页 > Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) A(暴力) B(暴力) C(思维 规律)
头像
永远鲜红的幼月
编辑于 2019-07-24 17:51
+ 关注

Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) A(暴力) B(暴力) C(思维 规律)

A. Right-Left Cipher(暴力)

题目链接:https://codeforces.com/contest/1087/problem/A

题目大意:一串字符串,输入方式是:先s0,然后后面输入s1,前面输入s2,后面输上s3.。。给出你这样输入的一个字符序列,让你输出它的原来的字符串;

思路:直接模拟即可:

AC:

char s[MAXN];

int main()
{
	std::ios::sync_with_stdio(false);
	while(cin>>s)
	{
		int l=strlen(s);
		if(l%2==0)
		{//ż�� 
			int res=l/2-1;
			cout<<s[res];
			for(int i=1;i<l/2;++i)
				cout<<s[res+i]<<s[res-i];
			cout<<s[l-1]<<endl;
		}
		else
		{//���� 
			int res=l/2;
			if(res==0)
			{
				cout<<s[res]<<endl;
				continue;
			}
			cout<<s[res];
			for(int i=1;i<=l/2;++i)
				cout<<s[res+i]<<s[res-i];
			cout<<endl;
		}
		clean(s,'\0');
	}
}

B. Div Times Mod(暴力)

题目链接:https://codeforces.com/contest/1087/problem/B

题目大意:解出方程:(x/k)*(x%k)=n的最小值x。x可以整除k。输入n([1,1e6])和k[2,1e3]

思路:暴力,首先方程化简,然后遍历一遍x%k的结果。然后从中找出符合要求的最小值x。

AC:

int main()
{
	std::ios::sync_with_stdio(false);
	int n,k;
	while(cin>>n>>k)
	{
		int res=n*k,ans=INF;
		for(int i=k-1;i>=1;--i)
		{//xȡģ�����λ i 
			if(res%i==0)
			{//x������ 
				int x=res/i;//��ֵx 
				x=x+i-(x%k);
				//cout<<x<<endl;
				if((x/k)*(x%k)==n)
					ans=min(ans,x);
			}
		}
		cout<<ans<<endl;
	}
}

C. Connect Three(思维,规律)

题目链接:https://codeforces.com/contest/1087/problem/C

题目大意:在一个网格中,有三个点,问如何得出一个路径使这三个点联通&&路径最短,然后输出路径。

思路:看成一个矩形,很明显,路径就是这个矩形的长和宽,我们从一个点出发,延该店的纵坐标向中间点靠近,然后从另一点出发,延纵坐标向中间点靠近,然后从中间点的横坐标,直接连接两个点的纵坐标即可。注意可能覆盖,因此两边的都为[,),上下的为[,]。

AC:

int x[5],y[5],really[MAXN];

int main()
{
	std::ios::sync_with_stdio(false);
	//���еĵ�ķֲ�������ת���� T ���ͷֲ� ������x1->x2  x2<-x3  Ȼ�� ��x2����y1->y3 
	for(int i=1;i<=3;++i)
	{
		cin>>x[i]>>y[i];
		really[x[i]]=y[i];
	}
	sort(x+1,x+4);
	sort(y+1,y+4);
	cout<<x[3]-x[1]+y[3]-y[1]+1<<endl;
	for(int i=x[1];i<x[2];++i)//��1��ʼ�ߵ�2������ 
		cout<<i<<" "<<really[x[1]]<<endl;
	for(int i=x[3];i>x[2];--i)//��3��ʼ�ߵ�2������ 
		cout<<i<<" "<<really[x[3]]<<endl;
	for(int i=y[1];i<=y[3];++i)//���������ߵ������� 
		cout<<x[2]<<" "<<i<<endl;
}

 

全部评论

(0) 回帖
加载中...
话题 回帖

近期热帖

热门推荐