Educational Codeforces Round 104 (Rated for Div. 2)

ABCDE都挺简单的
CF 1487A
大概意思是说n个人 每个人有个等级 现在可以任意次决斗
同等级的人都不会赢,不同等级的人,高等级的人等级会+1
现在问最终总决斗的获胜者可能有多少个人。
分析:因为同等级必定没有结果 所以我们统计一下最小值
然后统计下比最小值大的值的个数就OK 因为他们可以一直利用min来提高自己的等级

 
ll a[5000];
signed main(){
ll t;
read(t);
while(t--){
   ll n;
   read(n);
   ll mi=9999;
   for(int i=1;i<=n;i++){
   //ll x;
   read(a[i]);
   mi=min(mi,a[i]);
 
   }
   ll ans=0;
   for(int i=1;i<=n;i++){
    if(a[i]>mi){
        ans++;
    }

   }
 printf("%lld\n",ans);

}
 
}

1487 B Cat Cycle
大概意思是:
两个猫A,B 分别移动顺序是n–1 n-- 1 如此循环 1–n 1–n 如此循环
现在每h 都会顺着自己的方式移动一个单位 但是两者在同一个数字时 B猫会向着该点x 向前移动一个单位 现在问 长度为n 经过k (h) 后B猫所在位置
分析:
先令k- - 这样能凑出来 当k=n 的时候好判断一点
我们先观察 n偶数一定是不会出现重叠部分的 偶数直接k%n+1 即可
对于n是奇数 我们发现前n/2个单位是不会重叠的 but 后续部分 每n/2个便会重叠一次 那么对于n k 总额外移位次数就是k+k/(n/2)

signed main(){
 
 
ll t;
read(t);
while(t--){
    ll n,k;
    read(n);
    read(k);
    k--;
    if(n%2==0)
    {
      printf("%lld\n",k%n+1);
 
    }
    else{
 
        printf("%lld\n",(k/(n/2)+k)%n+1);
    }
 
 
}
 
}

1487C Minimum Ties
这个题按奇偶模拟就OK

 
ll s[999][999];
signed main()
{
	ll t;
	read(t);
	while(t--)
	{
		ll n;
		read(n);
         memset(s,0,sizeof(s));
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				s[i][j]=0;
		int hf=(n-1)/2;
		for(int i=1;i<=n;i++)
		{
			for(int j=i+1;j<=i+hf;j++)
				s[i][(j-1)%n+1]=1;
			for(int j=i-1;j>=i-hf;j--)
				s[i][(j+2*n-1)%n+1]=-1;
		}
		for(int i=1;i<=n;i++)
			for(int j=i+1;j<=n;j++)
				printf("%lld ",s[i][j]);
		printf("\n");
	}
	return 0;
}

1487D Pythagorean Triples
预处理后二分查询

 
vector <ll> all;
 
signed main ()
{
    for (int i = 1; 1ll * i * i <= 2000000000; i++)
    {
        long long x = 1ll * i * i;
        if (x & 1)
            all.push_back(x + 1 >> 1);
    }
  ll t;
  read(t);
    while (t--)
    {
     ll n;
     read(n);
        int pos = upper_bound(all.begin(), all.end(), n) - all.begin();
        printf("%lld\n", pos - 1);
    }
    return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值