L1-1 I LOVE WIT (10)
签到题。按照题意直接输出就好了。
print('''I L O V E W I T ''',end="")
L1-2 单位换算
签到题,直接算 ,如果就是整数,否则就是小数,当然也可以将计算后的数减去取整后的部分,判断是否大于0就是了,这题明显不会卡精度。
#include<stdio.h> int main(){ double n; scanf("%lf",&n); n = n*12*2.54*10; if(n - (int)n > 0) { printf("%.1lf",n); } else printf("%0.0lf",n); return 0; }
L1-3 Pokémon
闪光率是 补闪光率就是 ,然后直接算。
#include<bits/stdc++.h> using namespace std; int main(){ double a[36]={0}; for(int i=0;i<7;i++){ scanf("%lf%%",&a[i]); } int n,m;cin>>n>>m; double q=a[n]; if(m==1) q=q*0.01; else q*=0.99; printf("%.2f%%",q); return 0; }
L1-4 颠倒阴阳
最多62位,直接模拟就行,二进制n的第 i 位为 0 ,那么最终的结果第 位就是 1 ,前提是这个 0 不是前导 0 。每次将 n 的二进制右移并判断,如果 n 等于 0 表示遇到的0都是 n 的前导 0 。
#include<bits/stdc++.h> using namespace std; int main() { unsigned int n; cin>>n; unsigned int ans=0; for (int i=0;i<32;i++) { ans<<=1; if (n && ((n&1)==0)) { ans++; } n>>=1; } cout<<ans<<endl; return 0; }
E-L1-5 演唱会
算出小A到达的时间,其实只要算她几点到的就行,小于19算准时, 算迟到,大于等于 21 算太晚了。
#include<bits/stdc++.h> using namespace std; int main(){ int a,b,c; scanf("%d:%d:%d",&a,&b,&c); if(a>=21) cout<<"too late"<<endl; else{ c+=33; b+=c/60; b+=22; a+=b/60; a+=1; if(a<19) cout<<"arrive on time"; else if(a<21) cout<<"arrive late"<<endl; else cout<<"too late"<<endl; } return 0; }
L1-6 分鸽子
对于每个人只能吃到的鸽子肉只能来自于一只鸽子但是一只鸽子可以给分割被很多人吃。那么我们假设mid可以满足当前分配,自然而然地就知道想要这个答案更大一点的,那么如果这个mid不够给人分配,那么答案一定比mid更小,这样就满足了二分的性质。
#include<bits/stdc++.h> using namespace std; int a[1<<17]; int n,m; bool check(int x){ int num=0; for(int i=1;i<=n;i++){ num+=a[i]/x; } return num>=m; } int main(){ cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; int l=0,r=2e9,mid; while(l<r){ mid=l+r+1>>1; if(check(mid)) l=mid; else r=mid-1; } cout<<l<<endl; return 0; }