Day5 0709

前言:今天的题非常的水,但是!!!!我却没有好好做!!!!而且下来改题的时候一直出现细节错误(谁告诉我女生写代码更细致的?)只有T420分。。旁边学妹顺风顺水,我这里蛙声一片。。。


T1

  • 这道题就是打一个快速幂(然而我不会qwq
  • 但数据范围要注意一下,应该用unsigned long long(264
  • 另外,如果abcdefgh都是60,加上最大的i会溢出所以要进行特判(打表)
  • 对上面一句话的解释:如果abcdefgh都是60,那么加上i最大值,这个数的大小就变成了8*260+*(264+1)*2-1=264+2-1
  • 但如果abcdefgh有一个不是60,那么就一定不会超出unsigned long long范围
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 long long ksm(long long a,long long b){
     4     long long temp=1;
     5     while(b){
     6         if(b&1){
     7             temp*=a;    
     8         }
     9         a*=a;
    10         b>>=1;
    11     }
    12     return temp;
    13 }
    14 int main(){
    15     int t;
    16     bool flag;
    17     unsigned long long a;
    18     unsigned long long sum=0;
    19     cin>>t;
    20     for(int k=1;k<=t;k++){
    21         sum=0;
    22         for(int i=1;i<9;i++){
    23             flag=1;
    24             scanf("%llu",&a);
    25             if(a!=60){
    26                 flag=0;
    27             }
    28             sum+=ksm(2,a);
    29         }
    30         scanf("%llu",&a);
    31         if(flag&&a==9223372036854775808){
    32             cout<<"18446744073709551616"<<endl;
    33         }else{
    34             cout<<sum+a<<endl;
    35         }
    36     }
    37     return 0;
    38 }
    gift
  • 另外,一下是一个知道长整型数据大小的方法 (直接运行就好:D

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        cout<<ULLONG_MAX;//unsidned long long 
        cout<<endl;
        cout<<LLONG_MAX<<endl<<LLONG_MIN;//long long
    }

    T2

  • 这道题首先看到条件觉得要决策
  • 但仔细观察可以发现这是一个嵌套
  • 4x+3=2(2x+1)+1
  • 8x+7=2(2(2x+1)+1)+1
  • 2x+1
  • 由此可见,1式等于3式做两次,2式等于3式做三次
  • f(x)=2x+1

T3 

  • 不得不说,这hin简单了
  • 一道数学问题
  • 直径最大就是圆相切的时候

出自

 能想到这里就很简单了 答案就是三角形周长

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main(){
 4     int x1,y1,x2,y2,x3,y3;
 5     double s1,s2,s3,sum;
 6     int t;
 7     cin>>t;
 8     while(t>0){
 9         cin>>x1>>y1>>x2>>y2>>x3>>y3;
10         s1=sqrt(pow((x1-x2),2)+pow((y1-y2),2));
11         s2=sqrt(pow((x2-x3),2)+pow((y2-y3),2));
12         s3=sqrt(pow((x1-x3),2)+pow((y1-y3),2));
13         sum=s1+s2+s3;
14         cout<<(int)sum<<endl;
15         t--;
16     }
17     return 0;
18 }
circle

T4 

  •  树形DP
  • 参考Day2

  • 总结:
  • 一些简单的题可能会有一些细节需要注意
  • 先看看题再做
  • 基础要巩固
原文地址:https://www.cnblogs.com/duojiaming/p/11159700.html