Domains

K-Dimensional Foil

Graph

Chinese Checkers

Cats and Fish

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #include<vector>
  5. #include<algorithm>
  6. using std::vector;
  7. using std::sort;
  8. int cmp(const void * x, const void * y) {
  9. //x < y
  10. #define datatype int
  11. return (*((datatype *)(x))) > (*((datatype *)(y))) ? : -;
  12. #undef datatype
  13. }
  14. int v[], a[][], p[], s[];
  15. int main() {
  16. #ifndef ONLINE_JUDGE
  17. freopen("input.txt", "r", stdin);
  18. #endif
  19. int m, n, x;
  20. while (scanf("%d%d%d", &m, &n, &x) != EOF) {
  21. for (int i = ; i < n; i++) scanf("%d", &v[i]);
  22. memset(a, , sizeof(a));
  23. memset(p, , sizeof(p));
  24. for (int i = ; i < n; i++) s[i] = -;
  25. for (int i = ; i < n; i++) {
  26. for (int j = ; j <= x; j += v[i]) {
  27. a[j][p[j]++] = i;
  28. }
  29. }
  30. for (int i = ; i <= x; i++) {
  31. if (m == ) break;
  32. if (m >= p[i]) {
  33. for (int j = ; j < p[i]; j++) {
  34. s[a[i][j]] = i;
  35. }
  36. m -= p[i];
  37. } else {
  38. for (int ii = ; ii < p[i]; ii++) {
  39. for (int jj = ii + ; jj < p[i]; jj++) {
  40. if (v[a[i][ii]] > v[a[i][jj]]) {
  41. int tmp = a[i][ii];
  42. a[i][ii] = a[i][jj];
  43. a[i][jj] = tmp;
  44. }
  45. }
  46. }
  47. for (int j = ; j < m; j++) {
  48. s[a[i][j]] = i;
  49. }
  50. m = ;
  51. }
  52. }
  53. int com = m, incom = ;
  54. for (int i = ; i < n; i++) {
  55. int t = x - s[i];
  56. if (t == ) com++;
  57. else if (t >= v[i]) continue;
  58. else incom++;
  59. }
  60. printf("%d %d\n", com, incom);
  61. }
  62. return ;
  63. }

Secret Poems

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #include<vector>
  5. #include<algorithm>
  6. using std::vector;
  7. using std::sort;
  8. int cmp(const void * x, const void * y) {
  9. //x < y
  10. #define datatype int
  11. return (*((datatype *)(x))) > (*((datatype *)(y))) ? : -;
  12. #undef datatype
  13. }
  14. char poem[][], str[];
  15. const int dx[] = {, , , -};
  16. const int dy[] = {, , -, };
  17. int main() {
  18. #ifndef ONLINE_JUDGE
  19. freopen("input.txt", "r", stdin);
  20. #endif
  21. int n;
  22. while (scanf("%d", &n) != EOF) {
  23. for (int i = ; i < n; i++) scanf("%s", poem[i]);
  24. int ptr = , dir = , x = , y = , p = ;
  25. char tmp[];
  26. for (int i = ; i < * n - ; i++) {
  27. int xx = x, yy = y;
  28. for (int j = ; j < p; j++) {
  29. tmp[j] = poem[xx][yy];
  30. xx--, yy++;
  31. }
  32. if (dir == ) {
  33. for (int j = ; j < p; j++) {
  34. str[ptr++] = tmp[j];
  35. }
  36. } else {
  37. for (int j = p - ; j >= ; j--) {
  38. str[ptr++] = tmp[j];
  39. }
  40. }
  41. dir *= -;
  42. if (x + < n) {
  43. x++;
  44. p++;
  45. } else {
  46. y++;
  47. p--;
  48. }
  49. }
  50. memset(poem, ' ', sizeof(poem));
  51. for (int i = ; i < n; i++) poem[i][n] = '\0';
  52. x = y = ptr = dir = ;
  53. for (int i = ; i < n * n; i++) {
  54. poem[x][y] = str[ptr++];
  55. while (!((x + dx[dir] >= && x + dx[dir] < n)
  56. && (y + dy[dir] >= && y + dy[dir] < n)
  57. && (poem[x + dx[dir]][y + dy[dir]] == ' '))) {
  58. dir = (dir + ) % ;
  59. if (i + == n * n) break;
  60. }
  61. x = x + dx[dir], y = y + dy[dir];
  62. }
  63. for (int i = ; i < n; i++) printf("%s\n", poem[i]);
  64. }
  65. return ;
  66. }

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]

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #include<vector>
  5. #include<algorithm>
  6. using std::vector;
  7. using std::sort;
  8. int cmp(const void * x, const void * y) {
  9. //x < y
  10. #define datatype int
  11. return (*((datatype *)(x))) > (*((datatype *)(y))) ? : -;
  12. #undef datatype
  13. }
  14. int a[], dp[][][], sum[];
  15. int main() {
  16. #ifndef ONLINE_JUDGE
  17. freopen("input.txt", "r", stdin);
  18. #endif
  19. int n, l, r;
  20. while (scanf("%d%d%d", &n, &l, &r) != EOF) {
  21. for (int i = ; i < n; i++) scanf("%d", &a[i]);
  22. sum[] = a[];
  23. for (int i = ; i < n; i++) sum[i] = sum[i - ] + a[i];
  24. memset(dp, 0x3F, sizeof(dp));
  25. for (int i = ; i < n; i++) {
  26. for (int j = i; j < n; j++) {
  27. dp[i][j][j - i + ] = ;
  28. if (l <= j - i + && j - i + <= r) {
  29. dp[i][j][] = sum[j] - sum[i] + a[i];
  30. }
  31. }
  32. }
  33. /*
  34. dp[i][j][k]=min{dp[i][p][k-1]+dp[p+1][j][1]}
  35. */
  36. for (int i = n - ; i >= ; i--) {
  37. for (int j = i; j < n; j++) {
  38. for (int k = ; k <= j - i; k++) {
  39. for (int p = i; p < j; p++) {
  40. if (dp[i][j][k] > dp[i][p][k - ] + dp[p + ][j][]) dp[i][j][k] = dp[i][p][k - ] + dp[p + ][j][];
  41. }
  42. }
  43. for (int k = l; k <= r; k++) {
  44. 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];
  45. }
  46. }
  47. }
  48. if (dp[][n - ][] == 0x3F3F3F3F) printf("0\n");
  49. else printf("%d\n", dp[][n - ][]);
  50. }
  51. return ;
  52. }

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. 偏函数应用(Partial Application)和函数柯里化(Currying)

    偏函数应用指的是固化函数的一个或一些参数,从而产生一个新的函数.比如我们有一个记录日志的函数: 1: def log(level, message): 2: print level + ": ...

  2. Git 从github克隆文件至本地

    学习阶段,同一个项目,如何保障家与公司的代码同步的问题,可以使用git克隆来解决 在家将项目提交到了GitHub上,现在来到公司,需要将GitHub上的项目克隆到本地,那么对于公司的电脑来说,同样需要 ...

  3. java操作Excel的poi 设置单元格的对其方式

    设置单元格的对其方式 package com.java.poi; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.po ...

  4. Markdown 常用语法总结

    注意:Markdown使用#.+.*等符号来标记,符号后面必须跟上至少跟上 1个空格才有效! Markdown的常用语法 标题 Markdown标题支持两种形式. 1.用#标记 在标题开头加上1~6个 ...

  5. BZOJ 1864: [Zjoi2006]三色二叉树 树形DP + 读入

    Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. 题解:本题大水 ...

  6. python PIL图像处理-图片上添加文字

    首先需要安装库pillow cmd安装命令:pip install pillow 安装完后,编写脚本如下: from PIL import Image, ImageDraw, ImageFont de ...

  7. GDI 映射模式(11)

    概述 调用 SetMapMode 函数可以设置映射模式: int SetMapMode( HDC hdc, // 设备环境句柄 int fnMapMode // 要设置的映射模式 ); 同样,调用 G ...

  8. [cf 1015f] Bracket Substring (dp+kmp)

    传送门 Solution 设dp方程dp[now][pos][red][fla]表示还有now个位置,pos表示匹配到第几位,red表示左括号数-右括号数,fla表示是否已经是给定串的字串 暴力转移即 ...

  9. php unlink()函数使用

    最近在写个网站,需要上传图片,如果修改图片,就图片就没有用了,会占用服务器的硬盘资源,所以想到用unlink函数删除旧照片. 问题 : unlink函数只能删除 相对于函数执行文件的相对目录  或  ...

  10. GNUPlot绘制曲线

    发现gnuplot在mac上编译安装相当方便,在线下为了測试java老堆和lucene索引大小,须要绘制两条线,可是直接点连的线很难看,所以后面使用贝塞尔曲线. 脚本例如以下: #! /usr/loc ...