【每日一题】备战冲击蓝桥杯国赛——Python程序设计 | Day19 | 异或数列 | 真题代码解析
【摘要】 每天刷一道题,话不多说,先刷近两年的题吧,现在是2021年的真题了,如果有一起的可以加入我们!!!一起来刷题,冲击国赛!!! 2021年第十二届蓝桥杯赛题总览2020年的题就是这些,类型分为两种,分别是结果填空和程序设计,我们每天刷一道题,省赛没问题! 异或数列 (题目)(本题总分:20分)官方练习系统:https://www.lanqiao.cn/problems/1462/learnin...
每天刷一道题,话不多说,先刷近两年的题吧,现在是2021年的真题了,如果有一起的可以加入我们!!!
一起来刷题,冲击国赛!!!
2021年第十二届蓝桥杯赛题总览
2020年的题就是这些,类型分为两种,分别是结果填空和程序设计,我们每天刷一道题,省赛没问题!
异或数列 (题目)
(本题总分:20分)
官方练习系统:https://www.lanqiao.cn/problems/1462/learning/
—>【问题描述】
解析
通过阅读题干,本题——难度中上:⭐⭐⭐⭐
考察类型:动态规划、取模
考察知识点:dp
分析:
这道题是考动态规划。下面就设计一下动态规划吧!~
- 状态设计:dp(i, j)表示前i个括号插入若干个括号后,左括号比有括号多j个的插入方法数字。
- 状态转移方程:dp(i,j)=dp(i-1,j-1)( 左括号),dp(i,j)= ( 右括号)
- 状态转移优化:当 为右括号时,因 ,由此dp(i,j)=dp(i-1,j+1)+dp(i,j-1)。利用前缀和将 的状态转移方程优化为 。
- 初始状态:
CAUTION:要增加 vis 数组用于表示 dp 数组每个位置取模前的实际值是否为 0,如果只判断 dp值可能会出现 dp值实际不为 0 但是因为取模恰好为 0 的情况(虽然因为这个模数的特殊性,这个情况出现的概率几乎为 0 )
周末摸摸鱼~
下面直接开干!!!
代码
Python代码实现:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2022/3/13 14:36
# @Author : 府学路18号车神
# @Email :yurz_control@163.com
# @File : demo.py
# 请在此输入您的代码
T = int(input())
for _ in range(T):
a = list(map(int, input().split()))
dp = []
sum = 0
ma = 0
n = len(a)
for i in range(1, n):
dp.append(a[i])
sum ^= a[i]
ma = max(ma, a[i])
if sum == 0: # 每个不同位上的0和1个数分别为偶数
print(0)
continue
x = 1
while x < ma:
x <<= 1
while x > 0:
one = 0
zero = 0
for i in dp:
if i & x == 0: # 关于x的第某位是否为0
zero += 1
else:
one += 1
if one % 2 == 1: # 关于x的第某位1的个数为奇数
if zero % 2 == 1 and one > 1:
print(-1)
else:
print(1)
break
x >>= 1 # 关于x的第某位1的个数为偶数,则退位向下再次判断
由此,我们可以快速得出结果,验证完毕!明天最后一天,加油!!!
今天开刷第 十九 天,欢迎大家加入,一起变强,一起自律,一起上国赛!!!
有不同解法的可以在下面留言哦!~
往期刷题路线:
刷题路线 | Detail |
---|---|
2020年 | |
Day-01 | 门牌制作 |
Day-02 | 寻找2020 |
Day-03 | 跑步锻炼 |
Day-04 | 蛇形填数 |
Day-05 | 排序 |
Day-06 | 装饰珠 |
Day-07 | 成绩统计 |
Day-08 | 单词分析 |
Day-09 | 数字三角形 |
Day-10 | 平面切分 |
– | – |
2021年 | |
Day-11 | 卡片 |
Day-12 | 直线 |
Day-13 | 货物摆放 |
Day-14 | 路径 |
Day-15 | 回路计数 |
Day-16 | 时间显示 |
Day-17 | 杨辉三角 |
Day-18 | 左孩子右兄弟 |
官方刷题练习系统:http://lx.lanqiao.cn/
❤坚持读Paper,坚持做笔记,坚持学习,坚持刷力扣LeetCode❤!!!
坚持刷题!!!冲击国赛
⚡To Be No.1⚡⚡哈哈哈哈
⚡创作不易⚡,过路能❤关注、收藏、点个赞❤三连就最好不过了
ღ( ´・ᴗ・` )
❤
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)