标题效果:定义集合中{0,1}上的运算符“→”,定义例如以下:

0→0=1

0→1=1

1→0=0

1→1=1

如今给定一个表达式a1→a2→a3→...→an,要求加入一些括号使得值为0

由于0=1→0,因此显然末尾必须是0,否则无解

然后我们这么构造:

(a1→(a2→(a3→(...))))→an

由于an=0。所曾经面的那些东西必须等于1

然后我们讨论an−1

假设an−1=1,那么前面那坨东西显然是1(由于0要求末尾是0)

假设an−1=0。那么找到前面第一个0,一直合成到这个0后,由于0→0=1,因此末尾就变成了1

假设前面没有0,那么这个数列就是111...100

略微手玩一下能够发现这样的情况下无解。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 100100
using namespace std;
int n,a[M];
int main()
{
int i;
cin>>n;
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
if(n==1)
{
if(a[1]==1)
puts("NO");
else
puts("YES\n0");
return 0;
}
if(a[n]==1)
return puts("NO"),0;
for(i=1;i<=n-2;i++)
if(a[i]!=1)
break;
if(i==n-1&&a[n-1]==0&&a[n]==0)
return puts("NO"),0;
puts("YES");
for(i=1;i<=n-2;i++)
printf("(%d->",a[i]);
printf("%d",a[n-1]);
for(i=1;i<=n-2;i++)
putchar(')');
puts("->0");
return 0;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

codeforces #550E Brackets in Implications 结构体的更多相关文章

  1. CodeForces 550E Brackets in Implications 推理

    给出一个四个规则 0->0=1  0->1=1 1->0=0  1->1=0 我自己当时一味的去找规律,没有把式子好好推一推. 当然每个人都能想到a[n]=0是必须的 当a[n ...

  2. CodeForces 550E Brackets in Implications(构造)

    [题目链接]:click here~~ [题目大意]给定一个逻辑运算符号a->b:当前仅当a为1b为0值为0,其余为1,构造括号.改变运算优先级使得最后结果为0 [解题思路]: todo~~ / ...

  3. 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 ...

  4. Codeforces Round #681 (Div. 2, based on VK Cup 2019-2020 - Final) C. The Delivery Dilemma (贪心,结构体排序)

    题意:你要买\(n\)份午饭,你可以选择自己去买,或者叫外卖,每份午饭\(i\)自己去买需要消耗时间\(b_i\),叫外卖需要\(a_i\),外卖可以同时送,自己只能买完一份后回家再去买下一份,问最少 ...

  5. Codeforces Round #531 (Div. 3) B. Array K-Coloring (结构体排序)

    题意:给你\(n\)个数字,用\(k\)种颜色给他们涂色,要求每个数字都要涂,每种颜色都要用,相同的数字不能涂一样的颜色. 题解:用结构体读入每个数字和它的位置,然后用桶记录每个数字出现的次数,判断是 ...

  6. CodeForce-810B Summer sell-off (结构体排序)

    http://codeforces.com/problemset/problem/810/B 已知n天里,已知第i天的供货量和需求量,给定一个f,可以在n天之中选f天促销使得供货量翻倍. 问选择其中f ...

  7. Go结构体实现类似成员函数机制

    Go语言结构体成员能否是函数,从而实现类似类的成员函数的机制呢?答案是肯定的. package main import "fmt" type stru struct { testf ...

  8. C#基础回顾(二)—页面值传递、重载与重写、类与结构体、装箱与拆箱

    一.前言 -孤独的路上有梦想作伴,乘风破浪- 二.页面值传递 (1)C#各页面之间可以进行数据的交换和传递,页面之间可根据获取的数据,进行各自的操作(跳转.计算等操作).为了实现多种方式的数据传递,C ...

  9. go语言结构体

    定义: 是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体. 成员: 每个值称为结构体的成员. 示例: 用结构体的经典案例处理公司的员工信息,每个员工信息包含一个唯一的员工编号.员工的名字. ...

随机推荐

  1. android动画-动画分类及代码演示样例

    原来一直对动画一知半解,仅仅知道依照网上的方法会用即可了,可是自己写起来感觉确实有点费劲,今天最终研究了代码实现,一下子感觉清晰多了.先把总结例如以下,代码中有具体的凝视. 动画分类 1.Peoper ...

  2. Ajax改动购物车

    1.购物车类的设计 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWVxaWFuZ2xkaA==/font/5a6L5L2T/fontsize/4 ...

  3. 搜索树SVN的树的时候遇到的乱码问题

    public void listDirectoryNode(SVNRepository repository, String dirUrl, FileNode node) { String curre ...

  4. CentOS 如何使用第三方软件库-EPEL与RPMForge、RPMFusion软件库

    在CentOS下运行yum install flash-plugin或yum install mplayer的时候,提示库里没有找到这个软件?为什么会这样?因为CentOS是RHEL编译过来的,去掉了 ...

  5. 解决错误 fatal error C1010: unexpected end of file while looking for precompiled head

    在编译VS时候,出现fatal error C1010: unexpected end of file while looking for precompiled head. 问题详解:致命错误C10 ...

  6. HTML中心在页面上弹出自定义表单层(实现可能拖累)

    使用DIV窗体来动态显示内容的原理:首先採用CSS和HTML隐藏弹窗中的内容,然后利用JavaScript(本教程中是JQuery)来动态显示它们.这样的效果不仅可以充分利用有限的版面空间,并且可以提 ...

  7. oracle转Mysql中,varchar2(10)和number应该转换为什么类型? (转)

    一. varchar2(10)和number应该转换为什么类型? oracle转成mysql时:varchar2(10)可以转成varchar(10)number则要看oracle中存储的具体是什么类 ...

  8. REDGATE又一好用的脚本工具ScriptsManager1.3

    原文:REDGATE又一好用的脚本工具ScriptsManager1.3 REDGATE又一好用的脚本工具ScriptsManager1.3 先说明一下:这个工具是免费的 下载地址:http://ww ...

  9. mysql多实例的配置(转)

    1.创建多实例的目录: mkdir -p /data/mysql/mysql_3307/{data,tmp,logs} mkdir -p /data/mysql/mysql_3308/{data,tm ...

  10. 点击 下载 pdf

     <iframe id="fileDownFrame" src="" style="display:none; visibility:hidde ...