Codeforces Round #582 (Div. 3)
作者:互联网
A Chips Moving
传送门
就是一堆木块,你需要做的是把某个木块±2或者±1,但是±1需要硬币。使得最后全部数相同
分析发现,所以奇数可以通过±2得到相同,所有偶数也是,所以,最后只要把奇数或偶数变成一样的数即可,那么也就是求奇数和偶数的最小个数。
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n;
cin>>n;
int e=0,o=0;
while(n--){
int x;
cin>>x;
if(x&1)o++;
else e++;
}
printf("%d\n",min(o,e));
return 0;
}
B Bad Prices
传送门
bad price 是指如果第天的价格是a,那么之后的价格如果小于a,那么第i的价格a就是bad price
我们选择的方法是从后面开始记录,不断更新最小值,然后如果该天的价格大于当前最小值,那么就是一个bad price
#include <iostream>
#include <cstdio>
#define ll long long
#define il inline
using namespace std;
const int N=150005;
inline ll read(){
char ch=getchar();ll x=0,f=1;
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int main(){
ll t;
cin>>t;
while(t--){
ll n;
scanf("%lld",&n);
ll a[N];
for(int i=0;i<n;i++){
scanf("%lld",&a[i]);
}
int ans=0;
int minn=1e6+5;
for(int i=n-1;i>=0;i--){
if(a[i]>minn){
ans++;
}else{
minn=a[i];
}
}
printf("%d\n",ans);
}
return 0;
}
C Book Reading
方法一
利用数字的特点,因为数字太大,枚举是不可能的。但是只需要把[1,n]里所有m的倍数的个位数相加即可,那么只需要找出所有个位数的规律,以及有几个m的倍数属于[1,n]
#include <iostream>
#include <cstdio>
#define ll long long
using namespace std;
ll a[]={2,4,6,8,0};
ll b[]={3,6,9,2,5,8,1,4,7,0};
ll c[]={4,8,2,6,0};
ll d[]={5,0};
ll e[]={6,2,8,4,0};
ll f[]={7,4,1,8,5,2,9,6,3,0};
ll g[]={8,6,4,2,0};
ll h[]={9,8,7,6,5,4,3,2,1,0};
ll j[]={1,2,3,4,5,6,7,8,9};
int main(){
int t;
cin>>t;
while(t--){
ll n,m;
cin>>n>>m;
ll sum=0;
ll x=n/m;
switch(m%10){
case 1: sum=45*(x/10);for(int i=0;i<x%10;i++)sum+=j[i];break;
case 2: sum=20*(x/5);for(int i=0;i<x%5;i++)sum+=a[i];break;
case 3: sum=45*(x/10);for(int i=0;i<x%10;i++)sum+=b[i];break;
case 4: sum=20*(x/5);for(int i=0;i<x%5;i++)sum+=c[i];break;
case 5: sum=5*(x/2);for(int i=0;i<x%2;i++)sum+=d[i];break;
case 6: sum=20*(x/5);for(int i=0;i<x%5;i++)sum+=e[i];break;
case 7: sum=45*(x/10);for(int i=0;i<x%10;i++)sum+=f[i];break;
case 8: sum=20*(x/5);for(int i=0;i<x%5;i++)sum+=g[i];break;
case 9: sum=45*(x/10);for(int i=0;i<x%10;i++)sum+=h[i];break;
}
printf("%lld\n",sum);
}
return 0;
}
方法二:
标签:ch,582,int,ll,Codeforces,long,while,Div,include 来源: https://www.cnblogs.com/Emcikem/p/11438781.html