| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> Daimayuan Online Judge 异或和或 -> 正文阅读 |
|
[数据结构与算法]Daimayuan Online Judge 异或和或 |
代码源每日一题 对于一个长度为?nn?的0101序列?a1,a2,…,ana1,a2,…,an。 你可以执行以下操作任意多次:
给定两个0101序列?s,ts,t?, 请你判断是否可以通过有限次(可以为00次)操作将序列?ss?变为?tt。 输入格式 第一行一个整数?tt?, 表示数据的组数(1≤t≤103)(1≤t≤103)。接下来?tt?组数据: 每组第一行一个0101字符串?s(1≤|s|≤103)s(1≤|s|≤103),每组第二行一个0101字符串?t(1≤|t|≤103)t(1≤|t|≤103)。 注意:|s||s|?可能不等于?|t||t|。 输出格式 如果可以通过有限次(可以为00次)操作将序列?ss?变为?tt?, 输出? 样例输入
样例输出
样例解释 第一组数据选择?i=2,j=3i=2,j=3?, 那么?x=1,y=1x=1,y=1?, 接着令?ai=x,aj=yai=x,aj=y?即可得到?tt?序列。 第二组数据?|s|=2,|t|=3|s|=2,|t|=3?显然无法满足要求。 思路:刚开始写错了,是因为没有考虑选中的两个数能够无限次数变化,例如:10与01,先将10变换为1 1,1 1又能变换成0 1.这是经过两次变化,所以我们便不再用模拟去写直接就是思维题了。因为1与0能生出1,而1 1又能生出0,所以一位一位的考虑便能一直生出0与1,但是最后一位的1最后会留下来,它与任何位数上组合也就顶多算是交换位置或者有多出一个1,所以一定会有一个1留下来。那么我们只用考虑1的个数即可。 完整代码:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 13:42:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |