Codeforces Round #267 (Div. 2)467B 467C

来源:互联网 发布:dotamax数据更新 编辑:程序博客网 时间:2024/05/21 05:42
#include<cstdio>#include<cmath>#include<cstdlib>#include<climits>#include<cctype>#include<cstring>#include<iostream>#include<algorithm>#include<queue>#include<map>#include<set>#include<stack>#include<string>#include<vector>#define ll __int64#define MAX 1010#define eps 1e-8#define INF INT_MAXusing namespace std;int n,m,k,a[MAX];int main(){    while (scanf("%d%d%d",&n,&m,&k) != EOF){        for (int i = 1; i<=m+1; i++)            scanf("%d",&a[i]);        int ans = 0;        for (int i = 1; i<m+1; i++){             int t = (a[i]^a[m+1]),cnt = 0;             for (int c = 0; c<n; c++)                 if (t&(1<<c)) cnt++;            if (cnt <= k) ans++;            }        printf("%d\n",ans);            }    return 0;}

467C

#include<cstdio>#include<cmath>#include<cstdlib>#include<climits>#include<cctype>#include<cstring>#include<iostream>#include<algorithm>#include<queue>#include<map>#include<set>#include<stack>#include<string>#include<vector>#define ll __int64#define MAX 5010#define eps 1e-8#define INF INT_MAXusing namespace std;ll d[MAX][MAX],a[MAX];int n,m,k;int main(){while (scanf("%d%d%d",&n,&m,&k) != EOF){int t;a[0] = 0;for (int i = 1; i<=n; i++){scanf("%d",&t);a[i] = a[i-1] + t;}memset(d,0LL,sizeof(d));for (int i = m; i<=n; i++)for (int j = 1; j<=i/m&&j<=k; j++)d[i][j] = max(d[i-1][j],d[i-m][j-1]+a[i] - a[i-m]);printf("%I64d\n",d[n][k]);}return 0;}











































0 0
原创粉丝点击