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. 学习网址Collect

    Laravel 学院    https://laravelacademy.org/wx小程序 https://developers.weixin.qq.com/miniprogram/dev/quic ...

  2. python 字符串模糊匹配 Fuzzywuzzy

    Python提供fuzzywuzzy模块,不仅可用于计算两个字符串之间的相似度,而且还提供排序接口能从大量候选集中找到最相似的句子. (1)安装 pip install fuzzywuzzy (2)接 ...

  3. List分组的两种方式

    java8之前List分组 假设有个student类,有id.name.score属性,list集合中存放所有学生信息,现在要根据学生姓名进行分组. public Map<String, Lis ...

  4. 504 Gateway Timeout 异常

    生产销售系统出现 504 Gateway Timeout 异常,其实就是服务器响应太慢导致nginx带来超时,先不说服务端慢的优化问题:只是单纯的解决504.到网上发现了一篇文章fix it Add ...

  5. Day 25 面向对象

    面向对象基础 面向对象编程 面向过程编程:类似于工厂的流水线 优点:逻辑清晰 缺点:扩展性差 面向对象编程:核心是对象二字,对象属性和方法的集合体,面向对象编程就是一堆对象交互 优点:扩展性强 缺点: ...

  6. Day 20 re模块(正则表达式)

    re模块 作用:取文本或者字符串内找你所需要的东西 import re re.findall(参数一,参数二,参数三) #暂时用到前两个,第一个为正则表达式,第二个为字符串,也就是被搜索的文本 ^元字 ...

  7. 【剑指Offer】41、和为S的连续正数序列

      题目描述:   小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数). ...

  8. SQL中IS NOT NULL与!=NULL的区别

    平时经常会遇到这两种写法:IS NOT NULL与!=NULL.也经常会遇到数据库有符合条件!=NULL的数据,但是返回为空集合.实际上,是由于对二者使用区别理解不透彻. 默认情况下,推荐使用 IS ...

  9. Llinux,NFS服务搭建(文件共享)

    NFS配置文件权限参数说明(/etc/exports) 1.rw :表示可读写权限. 2.ro :表示只读权限. 3.sync :请求或写入数据时,数据同步写入到NFS Server的硬盘后才返回.( ...

  10. mysql 基础教程

    创建数据库: CREATE DATABASE --DATABASE 或者 SCHEMA数据库集合 IF NOT EXISTS db_name CHARACTER SET utf8 COLLATE ut ...