RCC 2014 Warmup (Div. 2)_html/css_WEB-ITnose

php中文网
发布: 2016-06-24 12:05:58
原创
1496人浏览过

a题:看是全用c好还是全用d好还是都用的问题最少,注意 n * m

B题:题意坑死了,就开一个vis数组记录每个人前面的提交数,如果矛盾就false

C题:构造,只要判断n - k 是否

D题:状压DP,按k排序,然后dp数组只要记录完成集合,利用滚动数组优化空间,然后每次加上k * d去取最小值即可

E题:构造问题,不过用随机算法貌似更简便。构造出来的矩阵应该是

立即学习前端免费学习笔记(深入)”;

a a a a a b

a a a a a b

a a a a a b

c c c c c d

这样的,然后只要去随机a, b, c, d判断每行每列和是不是完全平方数即可

代码:

A:

div+css3阶梯分页样式
div+css3阶梯分页样式

div+css3阶梯分页样式

div+css3阶梯分页样式 84
查看详情 div+css3阶梯分页样式

#include <stdio.h>#include <string.h>#include <math.h>2 #define min(a,b) ((a)<(b)?(a):(b))int c, d, n, m, k;int main() {    scanf("%d%d%d%d%d", &c, &d, &n, &m, &k);    int sb = n * m - k;    if (sb <= 0) printf("0\n");    else printf("%d\n", min(sb * d, min((int)ceil(sb * 1.0 / n) * c, sb / n * c + sb % n * d)));    return 0;}
登录后复制

B:

#include <stdio.h>#include <string.h>const int N = 100005;int n, vis[N];struct Solu {    int x, k;} s[N];bool judge() {    memset(vis, 0, sizeof(vis));    for (int i = 0; i < n; i++) {        int x = s[i].x, k = s[i].k;        if (x == vis[k])            vis[k]++;        else if (x > vis[k])            return false;    }    return true;}int main() {    scanf("%d", &n);    for (int i = 0; i < n; i++)        scanf("%d%d", &s[i].x, &s[i].k);    if (judge()) printf("YES\n");    else printf("NO\n");    return 0;}
登录后复制

C:

#include <stdio.h>#include <string.h>int n, k;int main() {    scanf("%d%d", &n, &k);    if ((n - k) <= k) printf("-1\n");    else {        printf("%d\n", n * k);        for (int i = 1; i <= n; i++) {            for (int j = 1; j <= k; j++) {                int a = i, b = i + j;                if (b > n) b -= n;                printf("%d %d\n", a, b);            }        }    }    return 0;}
登录后复制

D:

#include <stdio.h>#include <string.h>#include <algorithm>#define min(a,b) ((a)<(b)?(a):(b))using namespace std;__int64 one = 1;const int N = 105;const int M = (1<<20) + 5;const __int64 INF = (one<<62);__int64 b, dp[M];int i, j, n, m;struct F {    __int64 x, k, s;} f[N];bool cmp(F a, F b) {    return a.k < b.k;}int main() {    __int64 ans = INF;    scanf("%d%d%I64d", &n, &m, &b);    for (i = 1; i <= n; i++) {        int num, ss;        scanf("%I64d%I64d%d", &f[i].x, &f[i].k, &num);        while (num--) {            scanf("%d", &ss);            f[i].s |= (1<<(ss-1));        }    }    int smax = (1<<m);    sort(f + 1, f + n + 1, cmp);    for (i = 1; i < smax; i++)        dp[i] = INF;    for (i = 1; i <= n; i++) {        for (j = 0; j < smax; j++) {            int ss = (j|f[i].s);            dp[ss] = min(dp[ss], dp[j] + f[i].x);        }        ans = min(ans, dp[smax - 1] + f[i].k * b);    }    if (ans == INF) ans = -1;    printf("%I64d\n", ans);    return 0;}
登录后复制

E:

#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>int n, m;bool check(int num) {    int m = (int)sqrt(num);    return m * m == num;}int main() {    scanf("%d%d", &n, &m);    int a, b, c, d, i, j;    while (1) {        a = rand() % 100 + 1;        b = rand() % 100 + 1;        c = rand() % 100 + 1;        d = rand() % 100 + 1;        if (check((m - 1) * a * a + b * b) &&             check((m - 1) * c * c + d * d) &&             check((n - 1) * a * a + c * c) &&             check((n - 1) * b * b + d * d))            break;    }    for (i = 0; i < n - 1; i++) {        for (j = 0; j < m - 1; j++)            printf("%d ", a);        printf("%d\n", b);    }    for (j = 0; j < m - 1; j++)        printf("%d ", c);    printf("%d\n", d);    return 0;}
登录后复制



HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号