前言:今天的题非常的水,但是!!!!我却没有好好做!!!!而且下来改题的时候一直出现细节错误(谁告诉我女生写代码更细致的?)只有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 }
-
另外,一下是一个知道长整型数据大小的方法 (直接运行就好: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 }
T4
- 树形DP
- 参考Day2
- 总结:
- 一些简单的题可能会有一些细节需要注意
- 先看看题再做
- 基础要巩固