第十二届蓝桥杯省赛第二场C++B组真题 未完结
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十二届蓝桥杯省赛第二场C++B组真题 未完结相关的知识,希望对你有一定的参考价值。
3496. 特殊年份 【简单】
#include<bits/stdc++.h>
using namespace std;
int ans;
bool check(int x)
{
int a=x/1000;
int b=(x/100)%10;
int c=(x%100)/10;
int d=x%10;
if(a==c&&d-b==1) return true;
else return false;
}
int main(void)
{
for(int i=0;i<5;i++)
{
int x; cin>>x;
if(check(x)) ans++;
}
cout<<ans;
return 0;
}
3490. 小平方 【简单】
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int n; cin>>n;
int ans=0;
for(int i=1;i<n;i++)
{
double temp=(i*i)%n;
if(temp<n/2.0) ans++;
}
cout<<ans;
return 0;
}
3491. 完全平方数【简单数论】
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
typedef long long int LL;
map<LL,LL>mp;
LL n,ans;
int main(void)
{
cin>>n;
for(int i=2;i<=n/i;i++) while(n%i==0) mp[i]++,n/=i;
if(n!=1) mp[n]++;
ans=1;
for(auto i=mp.begin();i!=mp.end();i++)
{
if(i->second%2==0) continue;
else ans*=i->first;
}
cout<<ans;
return 0;
}
3492. 负载均衡【小根堆模拟】
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
const int N=1e5*2+10;
struct machine
{
int id;//机器
int sum;//算力
int end;//结束的时间
friend bool operator < (machine f1,machine f2)//时间从小到大
{
return f1.end > f2.end;
}
}stu;
int sum[N];//每台计算机的当前可用的算力
int n,m;
int main(void)
{
cin>>n>>m;
priority_queue<machine> heap;
for(int i=1;i<=n;i++) scanf("%d",&sum[i]);
while(m--)
{
bool flag=false;
int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d);
while(heap.size())//判断可不可以释放算力
{
auto t=heap.top();
if(t.end<=a)
{
heap.pop();
sum[t.id]+=t.sum;
}
else break;
}
if(sum[b]>=d)//可以计算
{
stu.id=b,stu.sum=d,stu.end=a+c;
heap.push(stu);
sum[b]-=d;
cout<<sum[b]<<endl;
flag=true;
}
if(!flag) cout<<-1<<endl;
}
}
以上是关于第十二届蓝桥杯省赛第二场C++B组真题 未完结的主要内容,如果未能解决你的问题,请参考以下文章
第十二届蓝桥杯省赛第二场C++A/B组 AcWing 3492. 负载均衡树状数组/堆