A题是个数学题 就是比较x的y次方和y的x次方哪个大 取对数就是ylnx和xlny 直接写代码比较就行
[A] [c++] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); long long x,y; cin>>x>>y; double x1=y*log(x); double y1=x*log(y); if(x1==y1) cout<<min(x,y); else { if(x1>y1) cout<<x<<endl; else cout<<y<<endl; } return 0; }
L题解方程组 注意题目要的是正整数
E题 将情况分为两类 全死或打不死 只考虑打不死的情况 只要一个怪打不死那么就失败 先v[i]=t 就是一次加多少血 分析可知攻击间隔t 恢复速度v[i]若大于等于攻击力a 且一刀没打死 那么永远打不死 一开始就检查是否全死 如何求花多少时间呢 由题意 如果不能秒杀 那么这怪物必定会掉血+回血一次循环 而最后一次攻击 击杀死亡就不会回血 一个攻击 回血循环扣的血量 delta=a-v (如果此次扣的血量小于等于0 无解) 所以我们先把最后一刀放到最前面来算 轮数就是这个怪先砍最后一刀剩下的血量除以一次循环扣的血量向上取整 再加1(最后一刀) 总时间就是(总轮数-1)*时间间隔+1
[E] [c++] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include <bits/stdc++.h> using namespace std; const int MAXN=100005; long long n,t,a,ans,h[MAXN],v[MAXN]; bool check() { for(int i=1;i<=n;++i) { if(v[i]>=a&&h[i]>a)return false; } return true; } long long f(const long long &h,const long long &v) { if(h<=a)return 1; long long delta=a-v; return ceil( ((h-a)*1.0)/delta)+1; } int main() { scanf("%lld %lld %lld",&n,&t,&a); for(int i=1;i<=n;++i) { scanf("%lld %lld",&h[i],&v[i]); v[i]*=t; } if(!check()) { printf("-1"); return 0; } for(int i=1;i<=n;++i) { ans+=f(h[i],v[i]); } printf("%lld\n",(ans-1)*t+1); }
b题数论大礼包 cd是背包问题 日后填坑
L简单数学题 注意要判断小数的情况
[L] [c++] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 #include<bits/stdc++.h> using namespace std; long long v[10],a[10],sum; void solve() { int ans=0; long long v1,v2,v3; cin>>v[0]>>v[1]>>v[2]; sum=(v[0]+v[1]+v[2])/2; if(sum*2!=v[0]+v[1]+v[2]) //如果有边不是整数 { cout<<"NO"<<endl; return ; } for(int i=0;i<3;i++) { a[i]=sum-v[i]; if(v[i]<=a[i] ||v[i]<=0) break; else ans++; } if(ans!=3) cout<<"NO"<<endl; else { cout<<"Yes"<<endl; for(int i=0;i<3;i++) { cout<<a[i]<<" "; } cout<<endl; } } int main() { int T; cin>>T; while(T--) { solve(); } return 0; }
M题告诉我们 非传统题样例(specialjudge)可能是骗人的 样例是斐波那契数列 然而并不是 只需要一直输出112112112。。就行了