感觉全是思维乱搞题。

Gym - 101775J Straight Master

给你n种扑克,你每次可以出连续的3 ~ 5 张,问你能否出完。

Sample Input
2
13
1 2 2 1 0 0 0 0 0 0 0 0 0
13
1 1 1 1 0 1 1 0 0 0 0 0 0 Sample Output
Case #1: Yes
Case #2: No

相当于每次把一个长度为3~5的区间整体减1,问最后是否能够全部减成0。

显然,每次把一个长度大于5的区间整体减1也是可以的,因为6 = 3+3,7 = 3+4......

所以问题就变成了每次修改一个长度大于等于3的区间。

可以先维护原本序列的差分,然后区间整体减1就相当于a[l]--, a[r+1]++。

所以只要贪心的枚举每个大于0的位置,然后找后面的离他最近的小于0的数字匹配,把前者减,后者加,就可以了。

如果最近的距离 < 3那么就是不可以。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream> using namespace std;
typedef long long LL;
const int maxn = + ; int a[maxn];
LL c[maxn]; int main()
{
int t;
scanf("%d", &t);
for (int ca = ; ca <= t; ca++)
{
memset(a, , sizeof(a));
int n;
scanf("%d", &n);
for (int i = ; i <= n; i++) scanf("%d", &a[i]);
for (int i = ; i <= n+; i++) c[i] = a[i]-a[i-]; bool flag = true;
int r = ;
for (int i = ; i <= n; i++)
{
while(c[i] > )
{
while(c[r] >= )
if (++r > n+) flag = false;
if (r-i <= ) flag = false;
if (!flag) break;
c[r] += c[i], c[i] = ;
if (c[r] > ) c[i] = c[r], c[r] = ;
}
if (!flag) break;
} printf("Case #%d: %s\n", ca, flag?"Yes":"No");
}
}

Gym - 101775L SOS

有一个长度为n的数组,Panda和Sheep轮流往一个空的位置上放 "S" 或者是 "O"。

如果有人放完后,构成一个连续的 "SOS",那么这个人就胜利。

现在是Panda先手,再两个人足够决策的情况下,谁会获胜?

平局输出"Draw"。

Sample Input
2
3
7 Sample Output
Case #1: Draw
Case #2: Panda

首先,可以看出一个必胜态一定存在一个S_ _S的情况。

如果构成了这个必胜态,n为奇数时先手胜,n为偶数时先手败。

先讨论n为奇数:

显然的一点就是当n >= 7时,一定存在一个位置,先手放S可以构成一个必胜态,此时后手是无法阻止他的。

所以n为奇数且n >= 7时,先手是必胜的。

再讨论n为偶数:

根据上面的结论,此时先手一定不想构成一个S_ _S的局面,所以第一步一定放O,来尽可能阻止后手构成此必胜态。

什么时候阻止不了呢?当放O的点左边或右边有至少8个点的时候。此时n为16。

综上,n%2 == 1 && n >= 7,先手胜;n%2 == 0 && n >= 16,后手胜;否则就是平局。

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream> using namespace std;
typedef long long LL; int main()
{
int n;
scanf("%d", &n);
for (int i = ; i <= n; i++)
{
int t;
scanf("%d", &t);
if (t% == && t >= )
printf("Case #%d: Panda\n", i);
else if (t% == && t >= )
printf("Case #%d: Sheep\n", i);
else
printf("Case #%d: Draw\n", i);
}
}

2017 ACM-ICPC EC-Final ShangHai(思维乱搞赛)的更多相关文章

  1. 2017 ACM/ICPC Asia Regional Shenyang Online spfa+最长路

    transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 132768/1 ...

  2. 2017 ACM ICPC Asia Regional - Daejeon

    2017 ACM ICPC Asia Regional - Daejeon Problem A Broadcast Stations 题目描述:给出一棵树,每一个点有一个辐射距离\(p_i\)(待确定 ...

  3. 2017 ACM - ICPC Asia Ho Chi Minh City Regional Contest

    2017 ACM - ICPC Asia Ho Chi Minh City Regional Contest A - Arranging Wine 题目描述:有\(R\)个红箱和\(W\)个白箱,将这 ...

  4. ACM ICPC China final G Pandaria

    目录 ACM ICPC China final G Pandaria ACM ICPC China final G Pandaria 题意:给一张\(n\)个点\(m\)条边的无向图,\(c[i]\) ...

  5. 2017 ACM/ICPC Shenyang Online SPFA+无向图最长路

    transaction transaction transaction Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 132768/1 ...

  6. 2017 ACM/ICPC Asia Regional Qingdao Online

    Apple Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submi ...

  7. CodeForces - 1228D (暴力+思维+乱搞)

    题意 https://vjudge.net/problem/CodeForces-1228D 有一个n个顶点m条边的无向图,在一对顶点中最多有一条边. 设v1,v2是两个不相交的非空子集,当满足以下条 ...

  8. HDU - 6215 2017 ACM/ICPC Asia Regional Qingdao Online J - Brute Force Sorting

    Brute Force Sorting Time Limit: 1 Sec  Memory Limit: 128 MB 题目连接 http://acm.hdu.edu.cn/showproblem.p ...

  9. 2020 ICPC EC Final西安现场赛游记

    也不知道从何说起,也不知道会说些什么,最想表达的就是很累很累. 从第一天去的时候满怀希望,没什么感觉甚至还有一些兴奋.到后来一直在赶路,感觉很疲惫,热身赛的时候觉得马马虎虎,导致热身赛被咕.然后教练就 ...

随机推荐

  1. 《大话设计模式》num01---简单工厂模式

    2017年12月10日 20:13:57 独行侠的守望 阅读数:128更多个人分类: 设计模式编辑版权声明:本文为博主原创文章,转载请注明文章链接. https://blog.csdn.net/xia ...

  2. spring-boot整合shiro作权限认证

    spring-shiro属于轻量级权限框架,即使spring-security更新换代,市场上大多数企业还是选择shiro 废话不多说  引入pom文件 <!--shiro集成spring--& ...

  3. Google pieCharts的学习

    在公司项目开发过程中, 尤其是在网站的开发过程中,用到很多的前端的插件,在这里, 我简单介绍下近期Google pieCharts的是使用方法 https://developers.google.co ...

  4. Linux下安装maven和nexus

    Linux下安装maven1.首先到Maven官网下载安装文件,目前最新版本为3.0.3,下载文件为apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令: 2.进入下载 ...

  5. LeetCode OJ 3Sum 3个整数之和

    题意:给一个vector<int>容器,要求每当找到3个元素之和为0时就将这3个数按大小顺序记下来,用一个二维vector返回.也就是vector< vector<int> ...

  6. 洛谷 P1951 收费站_NOI导刊2009提高(2)

    题目描述 在某个遥远的国家里,有n个城市.编号为1,2,3,…,n. 这个国家的政府修建了m条双向的公路.每条公路连接着两个城市.沿着某条公路,开车从一个城市到另一个城市,需要花费一定的汽油. 开车每 ...

  7. php之header的不同用法

    1.header()函数的作用是:发送一个原始 HTTP 标头[Http Header]到客户端. header(string,replace,http_response_code) /*string ...

  8. JPA将查询结果转换为DTO对象

    前言 JPA支持使用@Query自定义查询,查询的结果需要字节用DTO对象接收,如果使用HQL的查询语句,可以将直接将DTO对象的构造方法传入hql中,直接转为DTO对象:而如果使用native sq ...

  9. IOS 截屏(保存到相册中)

    @interface NJViewController () /** * 点击截屏按钮 */ - (IBAction)captureView:(UIButton *)sender; /** * 白色v ...

  10. vuejs计算属性和侦听器

    <div id='root'> 姓:<input v-model='firstName'/> 名:<input v-model='secondName'/> < ...