Domains

K-Dimensional Foil

Graph

Chinese Checkers

Cats and Fish

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
#include<algorithm>
using std::vector;
using std::sort;
int cmp(const void * x, const void * y) {
//x < y
#define datatype int
return (*((datatype *)(x))) > (*((datatype *)(y))) ? : -;
#undef datatype
}
int v[], a[][], p[], s[];
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
int m, n, x;
while (scanf("%d%d%d", &m, &n, &x) != EOF) {
for (int i = ; i < n; i++) scanf("%d", &v[i]);
memset(a, , sizeof(a));
memset(p, , sizeof(p));
for (int i = ; i < n; i++) s[i] = -;
for (int i = ; i < n; i++) {
for (int j = ; j <= x; j += v[i]) {
a[j][p[j]++] = i;
}
}
for (int i = ; i <= x; i++) {
if (m == ) break;
if (m >= p[i]) {
for (int j = ; j < p[i]; j++) {
s[a[i][j]] = i;
}
m -= p[i];
} else {
for (int ii = ; ii < p[i]; ii++) {
for (int jj = ii + ; jj < p[i]; jj++) {
if (v[a[i][ii]] > v[a[i][jj]]) {
int tmp = a[i][ii];
a[i][ii] = a[i][jj];
a[i][jj] = tmp;
}
}
}
for (int j = ; j < m; j++) {
s[a[i][j]] = i;
}
m = ;
}
}
int com = m, incom = ;
for (int i = ; i < n; i++) {
int t = x - s[i];
if (t == ) com++;
else if (t >= v[i]) continue;
else incom++;
}
printf("%d %d\n", com, incom);
}
return ;
}

Secret Poems

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
#include<algorithm>
using std::vector;
using std::sort;
int cmp(const void * x, const void * y) {
//x < y
#define datatype int
return (*((datatype *)(x))) > (*((datatype *)(y))) ? : -;
#undef datatype
}
char poem[][], str[];
const int dx[] = {, , , -};
const int dy[] = {, , -, };
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
int n;
while (scanf("%d", &n) != EOF) {
for (int i = ; i < n; i++) scanf("%s", poem[i]);
int ptr = , dir = , x = , y = , p = ;
char tmp[];
for (int i = ; i < * n - ; i++) {
int xx = x, yy = y;
for (int j = ; j < p; j++) {
tmp[j] = poem[xx][yy];
xx--, yy++;
}
if (dir == ) {
for (int j = ; j < p; j++) {
str[ptr++] = tmp[j];
}
} else {
for (int j = p - ; j >= ; j--) {
str[ptr++] = tmp[j];
}
}
dir *= -;
if (x + < n) {
x++;
p++;
} else {
y++;
p--;
}
}
memset(poem, ' ', sizeof(poem));
for (int i = ; i < n; i++) poem[i][n] = '\0';
x = y = ptr = dir = ;
for (int i = ; i < n * n; i++) {
poem[x][y] = str[ptr++];
while (!((x + dx[dir] >= && x + dx[dir] < n)
&& (y + dy[dir] >= && y + dy[dir] < n)
&& (poem[x + dx[dir]][y + dy[dir]] == ' '))) {
dir = (dir + ) % ;
if (i + == n * n) break;
}
x = x + dx[dir], y = y + dy[dir];
}
for (int i = ; i < n; i++) printf("%s\n", poem[i]);
}
return ;
}

Liaoning Ship's Voyage

Puzzle Game

Colored Nodes

Pangu and Stones

动态规划:dp[i][j][k]表示从第i堆到第j堆进行若干次操作变成了k堆的最小花费,目标为dp[1][n][1]。

dp全部初始化为0x3F。

边界条件:

1.无操作:dp[i][j][j-i+1]=0

2.1次操作:dp[i][j][k]=sum(i,j)  j-i+1∈[l,r]

转移方程:

dp[i][j][k]=min{dp[i][p][k-1]+dp[p+1][j][1]} k>1

dp[i][j][1]=min{dp[i][j][k]}+sum(i,j) k∈[l,r]

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<vector>
#include<algorithm>
using std::vector;
using std::sort;
int cmp(const void * x, const void * y) {
//x < y
#define datatype int
return (*((datatype *)(x))) > (*((datatype *)(y))) ? : -;
#undef datatype
}
int a[], dp[][][], sum[];
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
int n, l, r;
while (scanf("%d%d%d", &n, &l, &r) != EOF) {
for (int i = ; i < n; i++) scanf("%d", &a[i]);
sum[] = a[];
for (int i = ; i < n; i++) sum[i] = sum[i - ] + a[i];
memset(dp, 0x3F, sizeof(dp));
for (int i = ; i < n; i++) {
for (int j = i; j < n; j++) {
dp[i][j][j - i + ] = ;
if (l <= j - i + && j - i + <= r) {
dp[i][j][] = sum[j] - sum[i] + a[i];
}
}
}
/*
dp[i][j][k]=min{dp[i][p][k-1]+dp[p+1][j][1]}
*/
for (int i = n - ; i >= ; i--) {
for (int j = i; j < n; j++) {
for (int k = ; k <= j - i; k++) {
for (int p = i; p < j; p++) {
if (dp[i][j][k] > dp[i][p][k - ] + dp[p + ][j][]) dp[i][j][k] = dp[i][p][k - ] + dp[p + ][j][];
}
}
for (int k = l; k <= r; k++) {
if (dp[i][j][] > dp[i][j][k] + sum[j] - sum[i] + a[i]) dp[i][j][] = dp[i][j][k] + sum[j] - sum[i] + a[i];
}
}
}
if (dp[][n - ][] == 0x3F3F3F3F) printf("0\n");
else printf("%d\n", dp[][n - ][]);
}
return ;
}

ACM-ICPC北京赛区[2017-11-19]的更多相关文章

  1. ACM ICPC Kharagpur Regional 2017

    ACM ICPC Kharagpur Regional 2017 A - Science Fair 题目描述:给定一个有\(n\)个点,\(m\)条无向边的图,其中某两个点记为\(S, T\),另外标 ...

  2. 2017 ACM/ICPC(北京)总结

    这个季节的,北京真的很冷. 下午的热身赛,我依然先去敲一道搜索题,但是很不幸这道搜索题坑点还是蛮多的,浪费了好长时间后依然没能A掉,期间Codeblocks崩溃一次使得代码完全丢失,在队友的建议下便暂 ...

  3. 2017 ACM/ICPC 新疆赛区 I 题 A Possible Tree 带权并查集

    传送门 题意:给定一棵带权树的形态, 但是并不知道每天条边的具体权重. 然后给m个信息, 信息格式为u v val, 表示在树上u 到 v 的路径上经过的边的权重的异或和为val, 问前面最多有多少个 ...

  4. 【2017 ACM/ICPC 乌鲁木齐赛区网络赛环境测试赛 E】蒜头君的排序

    [链接]h在这里写链接 [题意] 在这里写题意 [题解] 莫队算法+树状数组. 区间增加1或减少1. 对逆序对的影响是固定的. (用冒泡排序变成升序的交换次数,就是逆序对的个数) [错的次数] 0 [ ...

  5. 2014 ACM/ICPC 北京邀请赛 部分 题解

    题目链接:http://acm.bnu.edu.cn/bnuoj/problem.php?search=2014+ACM-ICPC+Beijing+Invitational+Programming+C ...

  6. hihoCoder 1578 Visiting Peking University 【贪心】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)

    #1578 : Visiting Peking University 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Ming is going to travel for ...

  7. ACM-ICPC北京赛区(2017)网络赛1【模拟+枚举+数组操作】

    题目1 : Visiting Peking University 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Ming is going to travel for n ...

  8. hihoCoder 1584 Bounce 【数学规律】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)

    #1584 : Bounce 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 For Argo, it is very interesting watching a cir ...

  9. 2014 ACM/ICPC 鞍山赛区现场赛 D&amp;I 解题报告

    鞍山现场赛结束了呢-- 我们出的是D+E+I三道题-- 吾辈AC掉的是D和I两道,趁着还记得.先在这里写一写我写的两道水题D&I的解题报告吧^_^. D题的意思呢是说星云内有一堆排成一条直线的 ...

  10. Substrings 第37届ACM/ICPC 杭州赛区现场赛C题(hdu 4455)

    http://acm.hdu.edu.cn/showproblem.php?pid=4455 https://icpcarchive.ecs.baylor.edu/index.php?option=c ...

随机推荐

  1. 【Python基础】while循环语句

    Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.其基本形式为: while 判断条件: 执行语句…… 执行语句可以是单个语句或语句 ...

  2. react-native 横向滚动的商品展示

    在app中会有这种页面 像这样商品是横向的,而且要滚动,思路是利用 ScrollView 横向的滚动 思路: (a): 横向滚动的整体作为一个组件  ShopCenter {/*** 横向滚动 *** ...

  3. PAT_A1143#Lowest Common Ancestor

    Source: PAT A1143 Lowest Common Ancestor (30 分) Description: The lowest common ancestor (LCA) of two ...

  4. 类的定义与实例化、构造函数和初始化表(day04)

    十三 类的定义与实例化 类的一般形式 class/struct 类名:继承表{ 访问控制限定符: 类名(形参表):初始化表{}//构造函数 ~类名(void){}//析构函数 返回类型 函数名(形参表 ...

  5. python-pycharm windows安装

    pycharm_IDE安装 1. 首先先pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/download/#section=windows,下载 ...

  6. 63.es中的type数据类型

    主要知识点 理解es中的type数据类型     一.type的理解 type是一个index中用来区分类似的数据的,但是可能有不同的fields,而且有不同的属性来控制索引建立.分词器.field的 ...

  7. PAT 1080. Graduate Admission

    It is said that in 2013, there were about 100 graduate schools ready to proceed over 40,000 applicat ...

  8. android 下载网络图片并缓存

    异步下载网络图片,并提供是否缓存至内存或外部文件的功能 异步加载类AsyncImageLoader public void downloadImage(final String url, final ...

  9. find结合rm删除大量文件

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://navarro.blogbus.com/logs/31502374.html 例:删除/home/raven下,包括子目录 ...

  10. Linux查看文件内容命令:more(转)

    Linux more命令类似cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字串的功 ...