CodeForces 550E Brackets in Implications 推理
给出一个四个规则
0->0=1 0->1=1
1->0=0 1->1=0
我自己当时一味的去找规律,没有把式子好好推一推。
当然每个人都能想到a[n]=0是必须的
当a[n-1]=1的时候,直接输出即可,因为前面无论到0还是1,最后与n-1结合都是1,而这正式我们需要的
那么问题来了,a[n-1]=0时,我们该如何操作呢?
思考这样我们以及知道的条件,考虑某一段010101010000111....1,只要是以1为结尾的,按顺序计算都是1。
再思考如何有两个0,我们发现(0(111...0))这个式子是恒等于1的,无论中间1是多少个,而只要这等于1后,无论(0(111...0))的前面位置按顺序计算是什么,答案都是1,然后再和0计算,答案就是0
反思:自己思考的时候,一味的僵化,没有把式子进行本质扩展和分析。同时脑子很乱,对于这种思维题,是大忌
#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
#include<map>
#define LL long long
using namespace std;
int a[];
int main()
{
int n;
while(~scanf("%d",&n))
{ for (int i=; i<=n; i++)
{
scanf("%d",&a[i]);
}
if (n==)
{
if(a[]==)
{
printf("YES\n0\n");
}
else
{
printf("NO\n");
}
}
else if (n==)
{
if (a[]== && a[]==)
{
printf("YES\n1->0\n");
}
else
{
printf("NO\n");
}
}else if (a[n]==){
printf("NO\n");
}
else
{
if (a[n-]==)
{
printf("YES\n");
for (int i=; i<=n; i++)
{
if (i-)
{
printf("->");
}
printf("%d",a[i]);
}
printf("\n");
}
else
{
int pos=-;
if (a[n]==)
{
for (int i=n-; i>=; i--)
{
if (a[i]==)
{
pos=i;
break;
}
}
if (pos==-)
{
printf("NO\n");
continue;
}
printf("YES\n");
for (int i=; i<pos; i++)
{
printf("%d->",a[i]);
}
printf("(0->(");
for (int i=pos+; i<=n-; i++)
{
printf("%d->",a[i]);
}
printf("0))->0\n");
}
else
{
printf("NO\n");
}
}
} }
return ;
}
CodeForces 550E Brackets in Implications 推理的更多相关文章
- codeforces #550E Brackets in Implications 结构体
标题效果:定义集合中{0,1}\{0,1\}上的运算符"→\rightarrow",定义例如以下: 0→0=10\rightarrow 0=1 0→1=10\rightarrow ...
- CodeForces 550E Brackets in Implications(构造)
[题目链接]:click here~~ [题目大意]给定一个逻辑运算符号a->b:当前仅当a为1b为0值为0,其余为1,构造括号.改变运算优先级使得最后结果为0 [解题思路]: todo~~ / ...
- Codeforces Round #306 (Div. 2) E. Brackets in Implications 构造
E. Brackets in Implications Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/conte ...
- 「日常训练」Brackets in Implications(Codeforces Round 306 Div.2 E)
题意与分析 稍微复杂一些的思维题.反正这场全是思维题,就一道暴力水题(B).题解直接去看官方的,很详尽. 代码 #include <bits/stdc++.h> #define MP ma ...
- Codeforces Round #306 (Div. 2)
A. Two Substrings You are given string s. Your task is to determine if the given string s contains t ...
- Codeforces Round #306 (Div. 2) ABCDE(构造)
A. Two Substrings 题意:给一个字符串,求是否含有不重叠的子串"AB"和"BA",长度1e5. 题解:看起来很简单,但是一直错,各种考虑不周全, ...
- Codeforces Round #306 (Div. 2) D.E. 解题报告
D题:Regular Bridge 乱搞. 构造 这题乱搞一下即可了.构造一个有桥并且每一个点的度数都为k的无向图. 方法非常多.也不好叙述.. 代码例如以下: #include <cstdio ...
- XJTU Summer Holiday Test 1(Brackets in Implications-构造)
B - Brackets in Implications Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & ...
- Codeforces Round #223 (Div. 2) E. Sereja and Brackets 线段树区间合并
题目链接:http://codeforces.com/contest/381/problem/E E. Sereja and Brackets time limit per test 1 secon ...
随机推荐
- Django基础笔记
1.准备工作 .虚拟环境设置 python3 pip install virtualenv python -m venv env(虚拟环境文件名) env\Scripts\activate pip i ...
- Windows Server 2016-Windows Server Backup功能
一.Windows Server Backup 介绍: Windows Server Backup 是一种功能,它提供了一组向导和其他工具,大概从WinSer2008开始Win Ser Backup引 ...
- JavaScript函数式编程
一段糟糕透顶的海鸥seagulls程序 鸟群合并conjoin则变成了一个更大的鸟群,繁殖breed则增加了鸟群的数量,增加的数量就是它们繁殖出来的海鸥的数量 //Flock 群 var ...
- 【Window Power Shell】介绍与使用
Windows PowerShell 是专为系统管理员设计的新 Windows 命令行脚本环境,主要实现系统和应用程序管理自动化. 1.发展历史 在2002年,微软开始研究一个新的产品叫做”Monad ...
- MySQL高级知识(十三)——表锁
前言:锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算机资源(如CPU.RAM.I/O等)的争用外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是 ...
- WPF 使用Console.Write打印信息到控制台窗口中
WPF中使用Console.Write函数来打印信息是没有意义的,因为并没有给其输出字符的窗口.对于桌面程序来说,这是十分合理的,然而有时为了方便调试,在程序编写过程中打印出信息给程序员看还是必要的, ...
- 为什么二流程序员都喜欢黑php?
为什么二流程序员都喜欢黑php? 为什么程序员都喜欢黑php?这个嘛!你骂一句php是垃圾试试,保准php程序员不揍扁你!这就好像自己的母校,纵然有很多不好的地方,但是只允许自己调侃,不允许外人骂半句 ...
- 解决Zabbix网页端Get value error: cannot connect to [[192.168.238.139]:10050]: [113] No route to host问题
在安装配置完zabbix_agentd以后,网页端出现 Get value error: cannot connect to [[192.168.238.139]:10050]: [113] No ...
- A1制作文件夹目录
第一步 在文件夹目录下建立bat文件,填写以下内容: dir *.* /B >目录.txt 最后双击bat文件. 第二步 运行后复制目录.txt文件内容到空白excel 使用hyperlink函 ...
- IRT模型的参数估计方法(EM算法和MCMC算法)
1.IRT模型概述 IRT(item response theory 项目反映理论)模型.IRT模型用来描述被试者能力和项目特性之间的关系.在现实生活中,由于被试者的能力不能通过可观测的数据进行描述, ...