- 文章目录
- 题目知识点
- 题目代码
- A Antinomy与比赛的含金量
- B Antinomy与取模
- C Antinomy与清理魔法
- E Antinomy慢慢点技能树
- F Antinomy与金手指
- H Antinomy与法术威力
- 题解pdf下载链接
- 结语
- 模拟
- gcd和lcm
- 思维
- 完全背包
- kmp
- 单调栈
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=1e5+10;
ll t;
int main(){
cin>>t;
while(t--){
ll x,y,z;
cin>>x>>y>>z;
if(x>90&&y>90&&z>60){
cout<<"A+\n";
}else{
cout<<"E+\n";
}
}
return 0;
}
B Antinomy与取模
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=1e5+10;
ll t;
ll gcd(ll a,ll b){
return b ? gcd(b,a%b) : a;
}
int main(){
scanf("%lld",&t);
while(t--){
ll x,y,l,r;
scanf("%lld%lld%lld%lld",&x,&y,&l,&r);
ll val=gcd(x,y);
val=x*y/val;
ll q=l/val;
ll p=r/val;
ll flag=0;
for(int i=q;i<=p;i++){
//cout<=l&&(i*val)<=r){
printf("%lld\n",i*val);
flag=1;
break;
}
}
if(!flag){
printf("-1\n");
}
}
return 0;
}
C Antinomy与清理魔法
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=1e5+10;
ll n,k;
ll a[maxn];
int main(){
scanf("%lld%lld",&n,&k);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
sort(a+1,a+1+n);
ll flag=0;
for(int i=2;i<=n;i++){
if((a[i]-a[i-1])>k){
flag=1;
break;
}
}
if(flag){
printf("NO");
}else{
printf("YES");
}
return 0;
}
E Antinomy慢慢点技能树
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=1e5+10;
ll n,k;
ll w[maxn];
ll v[maxn];
ll f[maxn];
int main(){
scanf("%lld",&n);
for(int i=1;i<=n;i++){
double v1;
scanf("%lf %lld",&v1,&w[i]);
v1=(v1+0.00005)*10000;
v[i]=v1;
//cout<=v[i];j--){
f[j]=max(f[j],f[j-v[i]]+w[i]);
ans=max(f[j],ans);
//cout<
F Antinomy与金手指
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=5e5+10;
ll n;
string s,t;
ll nex[maxn];
void getnex(){
ll k=-1;
ll j=0;
nex[0]=-1;
ll len=s.size();
while(jlen2){
return 0;
}
ll i=0,j=0;
while(i>n;
cin>>t>>s;
t+=t;
getnex();
if(!kmp()){
printf("TAT");
}else{
printf("wow");
}
return 0;
}
H Antinomy与法术威力
#include
#include
#include
using namespace std;
typedef long long int ll;
const ll maxn=2e5+10;
ll st[maxn];
ll l[maxn];
ll r[maxn];
ll a[maxn];
ll ans[maxn];
ll n;
ll now;
int main(){
scanf("%lld",&n);
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
}
now=-1;
st[++now]=0;
for(int i=1;i<=n;i++){
while(now>=0&&a[i]<=a[st[now]])now--;
l[i]=st[now];
st[++now]=i;
}
now=-1;
st[++now]=n+1;
for(int i=n;i>=1;i--){
while(now>=0&&a[i]<=a[st[now]])now--;
r[i]=st[now];
st[++now]=i;
}
//a[i]在r[i]-l[i]-1长度及其以下皆有用
for(int i=1;i<=n;i++){
ans[r[i]-l[i]-1]=max(a[i],ans[r[i]-l[i]-1]);
//cout<=1;i--){
ans[i]=max(ans[i],ans[i+1]);
}
for(int i=1;i<=n;i++){
printf("%lld ",ans[i]);
}
return 0;
}
题解pdf下载链接
- pdf题解
- 遇事不决 可问春风
- 春风不语 即随本心
- 我若本心能定 怎会遇事不决 春风亦有春风愁 不劳春风为我忧。
- 自此春风盈满袖,只为一解平安愁
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)