• Codeforces Round #276 (Div. 2)


    A. Factory

    题意:给出a,m,第一天的总量为a,需要生产为a%m,第二天的总量为a+a%m,需要生产(a+a%m)%m 计算到哪一天a%m==0为止

    自己做的时候,把i开到1000来循环就过了,后来搜题解发现这样过了是运气好

    应该这样理解:a大于m的时候没有意义,当a%m重复出现的时候,说明出现了循环,终止计算。

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring>  
     4 #include<algorithm>  
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     int i,sum=0,ans=0,x,m,flag=0;
    10     scanf("%d %d",&x,&m);
    11     for(i=1;i<=1000;i++)
    12     {
    13         sum=x;
    14         ans=x%m;
    15         if(ans==0) 
    16         {
    17             flag=1;
    18             break;
    19         }
    20         x=sum+ans;
    21     //    printf("x=%d
    ",x);
    22     }
    23     if(flag) printf("Yes
    ");
    24     else printf("No
    ");
    25 }
    View Code

    补-------------------

    B. Valuable Resources

    题意:给出n个坐标,求能够覆盖这n个坐标的最小的正方形的面积

    将这n个点的坐标排序后,正方形的边长为ans=max(a[n]-a[1],b[n]-b[1])

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring>  
     4 #include<algorithm>  
     5 using namespace std;
     6 
     7 int a[1005],b[1005];
     8  long long area;
     9 
    10 int main()
    11 {
    12     int i,j,n;
    13     long long ans1,ans2;
    14     scanf("%d",&n);
    15     for(i=0;i<n;i++)
    16     {
    17         cin>>a[i]>>b[i];
    18     }
    19     sort(a,a+n);
    20     sort(b,b+n);
    21     
    22     ans1=a[n-1]-a[0];
    23     ans2=b[n-1]-b[0];
    24     long long t=max(ans1,ans2);
    25     printf("%I64d
    ",t*t);    
    26 }
    View Code


     

    C. Bits

    题意:给出n,n对数l,r,找出一个数x使得x满足,l<=x<=r,且转换成二进制之后,构成x的1是最多的。

    将l从最低位开始填1,直到>=r为止,这样能够保证组成x的1最多

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring> 
     4 #include <cmath>   
     5 #include<algorithm>  
     6 using namespace std;
     7 
     8 typedef long long LL;
     9 
    10 int main()
    11 {
    12     int n;
    13     LL l,r;
    14     scanf("%d",&n);
    15     while(n--)
    16     {
    17         scanf("%I64d %I64d",&l,&r);
    18         for(int i=0;i<63;i++)
    19             if((l|(1LL<<i))<=r) l|=(1LL<<i);
    20             
    21             printf("%I64d
    ",l);
    22     }
    23 }
    View Code
  • 相关阅读:
    今天是元旦啊
    [待解决]python 函数加括号和不加括号的区别
    Jupyter Notebook的快捷键列表误操作发现的新大陆
    Series选择和过滤
    做鸢尾花切片练习中的'&'问题:(&,|)和(and,or)
    报错合集
    关于随机数种子seed的问题尽量使用numpy下的seed
    pandas创建Series序列/hashable
    在jupyter notebook中插入截图
    xml反序列化时,如何生成与之对应的类文件
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4308751.html
Copyright © 2020-2023  润新知