A
それは関係の倍数である場合はn桁、それはいくつかのグループに最低要件のセットであります
#include <iostream>
#include <cstdio>
#include <algorithm>
#define rep(i,a,n) for(int i=a;i<n;i++)
using namespace std;
const int N=105;
int a[N];
int ans;
int main(){
int n;
scanf("%d",&n);
rep(i,0,n)scanf("%d",&a[i]);
sort(a,a+n);
rep(i,0,n){
int cnt=1;
rep(j,0,i)if(a[i]%a[j]==0)cnt=0;//如果能除就是一组,不能除就不是一组
ans+=cnt;
}
printf("%d\n",ans);
}
B
Nは、ランプの所与の数の数を表し
、その後、ランプの初期条件を与え、光を表し、0、代表オフ
した後、変化を与え、B、B +、B + 2 *。。。戻る状態変化時に、時間を継続していきます
蓄積()関数は内部数値ライブラリにおけるサイクル和関数です
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <numeric>
#define rep(i,a,n) for(int i=a;i<n;i++)
using namespace std;
const int N=1005;
char s[N];
int a[N],b[N],f[N];
int main(){
int n;
scanf("%d",&n);
scanf("%s",s);
rep(i,0,n)f[i]=s[i]-'0';
rep(i,0,n)scanf("%d%d",a+i,b+i);
int ans=accumulate(f,f+n,0);//三个参数,头,尾地址,初始值,最后求和
rep(i,0,100000){//默认执行100000s
rep(j,0,n){//对每一个灯进行
if(i>=b[j]&&(i-b[j])%a[j]==0)f[j]^=1;//改变状态,f[i]记录每个时刻灯的情况,如果需要改变,就取异或0变1,1变0
}
ans=max(ans,accumulate(f,f+n,0));
}
printf("%d\n",ans);
return 0;
}