Chips CodeForces - 333B

题意:有一个n*n的棋盘,其中有m个格子被禁止。在游戏开始前要将一些芯片(?)放到四条边上(但不能是角上)。游戏开始后,每次操作将每一个芯片移动到它四周四格中某一格,并且要用n-1次操作将所有的芯片移到与其初始位置相对的一条边上。在移动过程中,不能有任何芯片经过被禁止的格子,不能有任何多个芯片重叠,不能在一次操作中使两个芯片交换位置(在将两个芯片放在相对的两条边上相对的位置时,就会发生)。问如果要求完成游戏,最多可以在棋盘上放几个芯片。

方法:

事实上,当第i行不为中间行时,这一行是否有芯片、芯片在哪端与其他任何行/列的情况都无关。

但是当第i行是中间行时,如果第i行有芯片,第i列无法有芯片。

第一次程序(错)

 #include<cstdio>
bool deny_row[],deny_column[];
int ans,n,m;
int main()
{
int i,x,y;
scanf("%d%d",&n,&m);
for(i=;i<=m;i++)
{
scanf("%d%d",&x,&y);
deny_row[x]=true;
deny_column[y]=true;
}
for(i=;i<n;i++)
if(!deny_row[i])
{
ans++;
deny_column[i]=true;
}
for(i=;i<n;i++)
if(!deny_column[i])
ans++;
printf("%d",ans);
return ;
}

误以为第i行有芯片,第i列就一定不能有芯片。误以为一定要放在同一端。

第二次(正确)

#include<cstdio>
bool deny_row[],deny_column[];
int ans,p,n,m;
int main()
{
int i,x,y;
scanf("%d%d",&n,&m);
if(n%==)
p=(n+)/;//记录中间行编号,如果其存在
for(i=;i<=m;i++)
{
scanf("%d%d",&x,&y);
deny_row[x]=true;
deny_column[y]=true;
}
for(i=;i<n;i++)
if(!deny_row[i])
ans++;
for(i=;i<n;i++)
if(!deny_column[i]&&(deny_row[i]==true||i!=p))
ans++;
printf("%d",ans);
return ;
}

Chips CodeForces - 333B的更多相关文章

  1. codeforces 333B - Chips

    注意:横向纵向交叉时,只要两条边不是正中的边(当n&1!=1),就可以余下两个chip. 代码里数组a[][]第二维下标 0表示横向边,1表示纵向边. #include<stdio.h& ...

  2. cf 333b

    G - Chips Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit S ...

  3. Codeforces Round #194 (Div. 1) B. Chips 水题

    B. Chips Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/333/problem/B D ...

  4. Codeforces Round #194 (Div. 2) D. Chips

    D. Chips time limit per test:1 second memory limit per test:256 megabytes input:standard input outpu ...

  5. Codeforces 1511G - Chips on a Board(01trie/倍增)

    Codeforces 题面传送门 & 洛谷题面传送门 一道名副其实的 hot tea 首先显然可以发现这俩人在玩 Nim 游戏,因此对于一个 \(c_i\in[l,r]\) 其 SG 值就是 ...

  6. Codeforces 1244F. Chips

    传送门 显然可以注意到连续的两个相同颜色的位置颜色是不会改变的,并且它还会把自己的颜色每秒往外扩展一个位置 同时对于 $BWBWBW...$ 这样的序列,它每个位置的颜色每一秒变化一次 然后可以发现, ...

  7. Codeforces Round #582 (Div. 3) A. Chips Moving

    传送门 题解: 给你n个数的坐标,你需要把他们移动到一个位置,有两种移动方式 1.向左或者右移动2 2.向左或者右移动1,但是耗费1 求最小耗费 题解: 很简单就可以想到,看一下偶数坐标多还是奇数坐标 ...

  8. CodeForces 176C Playing with Superglue 博弈论

    Playing with Superglue 题目连接: http://codeforces.com/problemset/problem/176/C Description Two players ...

  9. Codeforces Round 582

    Codeforces Round 582 这次比赛看着是Div.3就打了,没想到还是被虐了,并再次orz各位AK的大神-- A. Chips Moving 签到题.(然而签到题我还调了20min--) ...

随机推荐

  1. linux安装jdk tomcat nginx 以及常用命令

    linux: 操作系统,应用服务器上 常用命令: cd 切换命令 cd / cd ~ cd ../../ cd xx ll 展示所有的文件 ll -h 友好的展示 mkdir 创建目录 mkdir 目 ...

  2. LeetCode(21)题解:Merge Two Sorted Lists

    https://leetcode.com/problems/merge-two-sorted-lists/ Merge two sorted linked lists and return it as ...

  3. fastdfs配置文件解析

    1 tracker.conf 1.1 disabled=false 设置为false则该配置文件生效,否则屏蔽. 1.2 bind_addr= 程序监听地址,如果不设定则监听所有地址. 1.3 por ...

  4. 【独立开发人员er Cocos2d-x实战 007】使用Cocos2dx UserDefault.xml

    这篇博客是因为下述问题产生的 -(代码1): std::string str = FileUtils::getInstance()->getWritablePath(); CCLOG(str.c ...

  5. hdoj 1875 畅通project再续【最小生成树 kruskal &amp;&amp; prim】

    畅通project再续 Problem Description 相信大家都听说一个"百岛湖"的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其它的小岛时都要通过划小船来实现. ...

  6. gitbash使用

    gitbash是什么 git bash是Windows下的命令行工具. 基于msys GNU环境,有git分布式版本控制工具. 主要用于git版本控制,上传下载项目代码. GNU环境,就是说如果你喜欢 ...

  7. WebStorm配置SVN

    下载SVN客户端管理工具TortoiseSVN-1.8.5.25224-x64-svn-1.8.8,选择合适的Windows版本 配置项目目录,对应的VCS为Subversion 设置Subversi ...

  8. windows下运行swoole搭建环境

    swoole windows环境搭建 swoole框架是一个很神奇很厉害的框架,它弥补了PHP的本身的一些不足之处.其实swoole确切的说是一个使用C语言编写的PHP扩展,并且这个扩展不能够在win ...

  9. hdu1226

    hdu1226 :点击打开题目链接 本题目由于题目意思,容易得知是一道广搜的题目. 首先. 我们需要知道 ,大数取模,比如 如何判断1234567 对15 取模的数为多少?答案是7,但是如果他是大数怎 ...

  10. CodeForces-380C:Sereja and Brackets(线段树与括号序列)

    Sereja has a bracket sequence s1, s2, ..., sn, or, in other words, a string s of length n, consistin ...