UVA1607 Gates 与非门电路 (二分)
题意:给你一个按发生时间的序列,表示与非门电路的输入,一开始全部输入是x,现在要改成尽量少的x,实现相同的功能。
题解:电路功能只有4中0,1,x,非x。那么如果一开始x改变了,输出结果不变,那么说明是常量电路。否则一定可以只用一个x来实现相同的功能,因为从全为0到全为1的过程中一定会有某个时刻,改变了一个位置上的值结果也随之改变。
由于m很大,不能一个一个地试,二分来找。判断的时候,如果输入端编号小于等于输入参数k,那么就为1,否则为0。如果mid跑出来的结果和全为1的一致,那么,mid+1以后的位置一定都不是了,区间变成[L,mid],否则mid以及之前的一定都不是,区间变成[mid+1,R]。
#include<bits/stdc++.h>
using namespace std; const int maxm = ;
int n,m;
int o[maxm],s1[maxm],s2[maxm]; inline int Run(int k)
{
for(int i = ; i <= m ;i++){
int x = s1[i];
int y = s2[i];
int a = x<?-x<=k:o[x];
int b = y<?-y<=k:o[y];
o[i] = !(a&b);
}
return o[m];
} int main()
{
//freopen("in.txt","r",stdin);
int T; scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
for(int i = ; i <= m; i++){
scanf("%d%d",s1+i,s2+i);
}
int v0 = Run(), vn = Run(n); if(v0 == vn) {
for(int i = ; i < n; i++) putchar('');
putchar('\n'); continue;
} int L = , R = n;
int mid;
while(L<R) {
mid = (L + R)>>;
if(Run(mid) == vn) R = mid;
else L = mid+;
}
for(int i = ; i < L; i++) putchar('');
putchar('x');
for(int i = L+; i <= n; i++) putchar('');
if(T) putchar('\n');
}
return ;
}
UVA1607 Gates 与非门电路 (二分)的更多相关文章
- TTL与非门电路的工作原理
分立元件门电路虽然结构简单,但是存在着体积大.工作可靠性差.工作速度慢等许多缺点.1961年美国德克萨斯仪器公司率先将数字电路的元器件和连线制作在同一硅片上,制成了集成电路.由于集成电路体积小.质量轻 ...
- TTL与非门电路分析
TTL与非门(TTL推挽式与非门)是TTL集成逻辑门的一种,主要由三极管和二极管构成.如图(a)所示,它由输入级,中间级,输出级三部分组成.TTL与非门的优点在于输出阻抗低,带负载能力强,工作速度快. ...
- CMOS构成的常见电路
CMOS门电路 以MOS(Metal-Oxide Semiconductor)管作为开关元件的门电路称为MOS门电路.由于MOS型集成门电路具有制造工艺简单.集成度高.功耗小以及抗干扰能力强等优点,因 ...
- TTL和CMOS
reprint from:http://blog.csdn.net/hemeinvyiqiluoben/article/details/9253249 TTL和COMS电平匹配以及电平转换的方法 一. ...
- TTL和COMS电平匹配以及电平转换的方法
一.TTL TTL集成电路的主要型式为晶体管-晶体管逻辑门(transistor-transistor logic gate),TTL大部分都采用5V电源.1.输出高电平Uoh和输出低电平UolUoh ...
- TTL电平,CMOS电平,232/485电平,OC门,OD门基础知识
1.RS232电平 或者说串口电平,有的甚至说计算机电平,所有的这些说法,指得都是计算机9针串口 (RS232)的电平,采用负逻辑, -15v ~ -3v 代表1 +3v ~ +15v 代表0 2. ...
- 数字电路-异同步 复位 线与 oc门
1.同步电路和异步电路的区别是什么? 异步电路:主要是组合逻辑电路,用于产生地址译码器.FIFO或RAM的读写控制信号脉冲,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通 ...
- 触发器(基本的SR触发器、同步触发器、D触发器)
一.能够存储1位二值信号的基本单元电路统称为触发器(Filp-Flop) 触发器是构成时序逻辑电路的基本逻辑部件.它有两个稳定状态:“0”和“1”.在不同的输入情况下,它可以被置0状态或1状态,当输入 ...
- FPGA设计思想与技巧(转载)
题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢.这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一 ...
随机推荐
- 交互原型设计软件axure rp学习之路(一)
开始学习之前,请一定要明白:Axure是个极其极其极其简单的软件.因为你所做的就是拖部件,打字,拖部件,打字,最多加个对齐.如果你能把axure当作word或者ppt来用,那你就学会了axure. A ...
- JAVA获取本周 本月 本年 第一天和最后一天
/** * 日期工具类 */ public class DateUtils { /** * 获取今天 * @return String * */ public static String getTod ...
- Spark HA 配置中spark.deploy.zookeeper.url 的意思
Spark HA的配置网上很多,最近我在看王林的Spark的视频,要付费的.那个人牛B吹得很大,本事应该是有的,但是有本事,不一定就是好老师.一开始吹中国第一,吹着吹着就变成世界第一.就算你真的是世界 ...
- codeforces1081G Mergesort Strikes Back【期望dp+脑洞】
首先看这样做的特点,就是分到最后小块里的点合并上去的时候相对顺序不变,所以先加上块内逆序对的期望 合并的时候一定是一边卡住一个大值,另一边跳指针,所以把一个值向右直到有大于它的值位置的一段区间看作一段 ...
- HTML <!doctype>声明
昨天看代码的时候,发现在<!doctype>中添加了新的属性,以前写代码的时候并不会在该声明里添加新的属性.昨天看到了,就把它记下来学习一下,顺便整理成文档.以便日后复习. <!DO ...
- Linux上传下载工具 lrzsz
- day3字符串操作作业详解
1.day3题目 1.有变量name = "aleX leNb" 完成如下操作: 1) 移除 name 变量对应的值两边的空格,并输出处理结果 2) 移除name变量左边的&quo ...
- JS高级学习历程-17
[正则案例] 1 匹配手机号码
- [题解]luogu_P2155_BZOJ_2186沙拉公主的困惑
题意求1~N!中与M!互质的数的个数, 首先证明gcd(a,b)=1时gcd(a-kb,b)=1 gcd(a,b)=1 gcd(a%b,b)=1 gcd(a-kb,b)=1 即a-kb与b互质 这样由 ...
- Vue --6 router进阶、单页面应用(SPA)带来的问题
一.Vue-router进阶 回顾学过的vue-router,并参考官方文档学习嵌套路由等路由相关知识. 二.单页面应用(SPA)带来的问题 1.虽然单页面应用有优点,但是,如果后端不做服务器渲染(h ...