• $Codeforces$ $Round$ $739$ $Div.3$ 简要题解


    一时兴起,打了个 (Div3) ,果然是老年退役选手, (Div3) 只能切前三题了。只能说,道阻且长啊。

    (A) (Dislike) (of) (Threes)

    解法

    (1) 开始枚举正整数,筛掉满足 (x equiv 3 (mod 10))(x equiv 0 (mod 3)) 的正整数 (x) ,筛出 (1000) 个即可。

    (Code)

    #include<bits/stdc++.h>
    using namespace std;
    inline int read()
    {
    	int ret=0,f=1;
    	char ch=getchar();
    	while(ch>'9'||ch<'0')
    	{
    		if(ch=='-')
    			f=-1;
    		ch=getchar();
    	}
    	while(ch>='0'&&ch<='9')
    	{
    		ret=(ret<<1)+(ret<<3)+ch-'0';
    		ch=getchar();
    	}
    	return ret*f;
    }
    int t,k,num,a[1005];
    int main()
    {
    	t=read();
    	for(register int i=1;i<=5000;i++)
    	{
    		if(i%3==0||i%10==3)
    			continue;
    		num++;
    		a[num]=i;
    		if(num==1000)
    			break;
    	}
    	for(register int i=1;i<=t;i++)
    	{
    		k=read();
    		printf("%d
    ",a[k]);
    	}
    	return 0;
    }
    

    (B) (Who's) (Opposite?)

    解法

    (2|a-b|) 为环长(记为 (2r) )。设答案为 (d) ,则合法的 (d=d+r)(d=d-r)(d)([1,2n](d in N_+)) 之间。

    (Code)

    #include<bits/stdc++.h>
    using namespace std;
    inline int read()
    {
    	int ret=0,f=1;
    	char ch=getchar();
    	while(ch>'9'||ch<'0')
    	{
    		if(ch=='-')
    			f=-1;
    		ch=getchar();
    	}
    	while(ch>='0'&&ch<='9')
    	{
    		ret=(ret<<1)+(ret<<3)+ch-'0';
    		ch=getchar();
    	}
    	return ret*f;
    }
    int t,a,b,c,d,r;
    int main()
    {
    	t=read();
    	for(register int i=1;i<=t;i++)
    	{
    		a=read();
    		b=read();
    		c=read();
    		r=abs(a-b);
    		if(a>2*r||b>2*r||c>2*r)
    		{
    			printf("-1
    ");
    			continue;
    		}
    		d=c-r;
    		if(d>0&&d<=2*r)
    		{
    			printf("%d
    ",d);
    			continue;
    		}
    		d=c+r;
    		if(d>0&&d<=2*r)
    		{
    			printf("%d
    ",d);
    			continue;
    		}
    		printf("-1
    ");
    	}
    	return 0;
    }
    

    (C) (Infinity) (Table)

    解法

    考虑把 (k)拆成 (a^2+b(a,b in N,b in [0,2a])) 的形式。 (b leqslant a+1) 时, (k)((b,a+1)) ; (b>a+1) 时, (k)((a+1,2a-b+2))

    (Code)

    #include<bits/stdc++.h>
    using namespace std;
    inline int read()
    {
    	int ret=0,f=1;
    	char ch=getchar();
    	while(ch>'9'||ch<'0')
    	{
    		if(ch=='-')
    			f=-1;
    		ch=getchar();
    	}
    	while(ch>='0'&&ch<='9')
    	{
    		ret=(ret<<1)+(ret<<3)+ch-'0';
    		ch=getchar();
    	}
    	return ret*f;
    }
    int t,k,a,b,r,c,x[40005];
    int main()
    {
    	t=read();
    	for(register int i=1;i<=40000;i++)
    		x[i]=i*i;
    	for(register int i=1;i<=t;i++)
    	{
    		k=read();
    		if(k==2)
    		{
    			printf("1 2
    ");
    			continue;
    		}
    		if(k==3)
    		{
    			printf("2 2
    ");
    			continue;
    		}
    		for(register int j=1;j<=40000;j++)
    		{
    			if(k<x[j])
    			{
    				a=j-1;
    				break;
    			}
    		}
    		b=k-x[a];
    		if(b==0)
    		{
    			printf("%d %d
    ",a,1);
    			continue;
    		}
    		if(b<=a+1)
    		{
    			r=b;
    			c=a+1;
    		}
    		else
    		{
    			r=a+1;
    			c=2*a+2-b;
    		}
    		printf("%d %d
    ",r,c);
    	}
    	return 0;
    }
    

    未完待续

  • 相关阅读:
    织梦内容模型自定义字段设置一个随机数
    网页禁止右键查看源码屏蔽键盘事件
    面试官:如何防止 Java 源码被反编译?我竟然答不上来。。
    Elastic Job 同城主备、同城双活,高可用必备~
    再见,Spring Security OAuth!!
    怎么让 Linux 进程在后台运行?
    30 个 ElasticSearch 调优知识点,都给你整理好了!
    Spring Boot 2.5.4 发布,2.2.x 正式结束使命!
    移动端与服务器端之间的 token 怎么设计?
    最新数据库排行出炉,SQL Server 暴跌。。
  • 原文地址:https://www.cnblogs.com/Peter0701/p/15173998.html
Copyright © 2020-2023  润新知