首页 > TAG信息列表 > 奇偶性

AtCoder Regular Contest 147

Problem A 题目大意:由N个正整数组成的序列,我们可以从中取出任意长短序列进行如下操作:序列中(最大值maxn%最小值minn = A),如果A为0则删除maxn,否则用A替换,询问要使得整个序列最后只剩下1,至少需要多少步操作; 思路:We can prove that, no matter how you choose i,ji,j in the oper

Kuglarz の tj

Kuglarz 我们可以发现,我们要确定 i 里面有没有东西,有两种方法: 1.直接看 ( i , i )2.看 ( i , j ) 和 ( i + 1 , j ) 我们可以把点变成边权, i 变成 i − 1 到 i的一条边。( 对于(i,i)这种自环情况可以设置一个虚点0 )那我们就发现我们要让最小的边权使得所有的点都被连起来。 如果

完美与奇偶性 自做自切

题目链接 U230600 完美与奇偶性 题解 我们发现问题可以直接转化为选取一个区间后,区间里的数全部反转(1 -> 0, 0 -> 1),有些数需要被反转奇数次,有些数需要被反转偶数次,从而一定地简化问题。 首先考虑爆搜,发现每次对一个区间的修改可以进行差分优化,于是考虑差分,实现单点修改,求最终状态

G - Brick (湖北) (奇偶性+贪心找规律)

题意: 给一个正整数数组 hi,每次可以把一个 hi 加 2 或者把两个相等的 hi, hi+1 同时加 1 ,问使得所有 hi 相等的最小高度或者输出无解 思路: 考虑 hi 最小的任一个点 i , 1. 如果 hi−1 > hi, hi < hi+1 ,只能在点 i 填上竖向的方块 2. 如果 hi = hi+1 可以从 {hn} 中同时删去 i 和

【题解】Counting Cycles ICPC 亚洲赛区 日本 K 题

https://vjudge.net/problem/Aizu-1388 考虑建立虚树后,枚举非树边子集 \(S\)。现给出一个结论 钦定一些非树边要在简单环(不能经过同一个结点多次)中,成环方案不超过 \(1\)。 证明: 考虑每一条树边是否存在于该环中,判据为树上割成的两个连通块中某一个连通块内 \(\sum d_i\)(度数和)

Atcoder Beginner Contest 258 EX 题解

前言 这题有很高级的基于 \(Fibonacci\) 数列递推的做法,我提供一个简单做法。 那个高级做法的题解我附图在博客里面,不过禁止外传。 这个题矩阵加速的系数涉及到能不能选,按照不能选的数分段矩阵求幂是一个不错的方法 难度 差不多 \(2400\) 。 题意 给定 \(n,S\) 和一个数列 \(A\) ,

关于 Snowflake 算法奇偶性小探讨

如果说到分布式 ID,肯定逃不开 Snowflake 算法,其原理如下图 介绍如下 snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生

CF 793 div2 D 题解

793div2 D 首先考虑满足边的奇偶性条件。 如果 \(\texttt{1}\) 的数量为奇数显然无解,如果为偶数,就连接两个 \(\texttt{1}\) 之间的所有边。 比如 \(\texttt{1001001001110}\),连接 \(1\leftrightarrow 2\leftrightarrow3\leftrightarrow4\),\(7\leftrightarrow8\leftrightarrow9\lef

CF Gym103415D Unnamed Easy Problem

Description 计算满足下列条件的 \([m\times n]0/1\) 矩阵的数量: 每行后 \(n-k\) 列至少有一个 \(1\) 每行互不相同 \(1\sim p\) 列共有奇数个 \(1\),\(k+1\sim k+q\) 列共有奇数个 \(1\) 行之间无序 \(1\le k<n\le 10^9,m\le 10^6\) Solution 先不考虑最后一个限制,最后

LeetCode 1524 Number of Sub-arrays With Odd Sum 思维

Given an array of integers arr, return the number of subarrays with an odd sum. Since the answer can be very large, return it modulo \(10^9 + 7\). Solution 注意 \(subarray\) 是连续的序列。注意的一点是: \(\text{odd+odd/even+even = even}\),因此只有当奇偶性相反时,

Codeforces Round #630 (Div. 2)

比赛链接: https://codeforces.com/contest/1332 E. Height All the Same 题目大意: \(n * m\) 的矩形区域内,每个点上的高度处在 \([l, r]\),有两种操作: 操作 1,选择一个位置 \((i, j)\),让该位置高度 + 2。 操作 2,选择两个相邻的位置,两个位置高度都 + 1。 问有多少种情况,通过若干次操

「LTIME107」Odd Split

「LTIME107」Odd Split 给定 \(N\) 和模数 \(\text{mod}\),对于 \(n=1\sim N\) 计算: 有多少个大小为 \(n\) 的排列 \(P\),满足它可以被划分成两个子序列,使得两个子序列的逆序对数均为奇数。 \(1\le N\le 10^6,10^8\le \text{mod}\le 10^9\),保证 \(\text{mod}\) 是奇数。 Solution

2022 Usaco US Open - 银组题解

T1 题意简述 有 \(n\) 只奶牛,第 \(i\) 只奶牛希望拜访第 \(a_i\) 只奶牛。 给定一个 \(1\) . . . \(N\) 的排列 \((p_1, p_2, ..., p_n)\),对于从 \(1\) 到 \(n\) 的每一个 \(i\): 如果奶牛 \(a_{p_i}\) 已经离开了她的农场,那么奶牛 \(p_i\) 仍然留在她的农场。 否则,奶牛 \(p_i\)

远古离散题

前言 因为之前做法假了或者代码写太丑了,还不如重写一遍。 之前CSDN过河的代码会被洛谷的HACK数据HACK掉QWQ。 过河 题目链接:P1052 题目大意 有一条河,起点为 \(0\),终点为 \(L(L\leq 10^9)\),其中一些位置有石头。 有一只青蛙一次可以跳 \([l,r](r\leq 10)\) 的距离,如果它想从起点

试题解析

试题解析$T1$简化题意一个序列是优美的当且仅当可以通过操作(将相邻两个数移动到序列任意位置)使序列不降考虑怎么使这个序列不降,考虑移动会造成的影响,逆序对$+/-2$,或者不变那么如果有偶数个,那么一定优美,否则一定不优美如果是偶数个,肯定能构造出一种方案使得逆序对减少到$0$

ZZULI OJ 1126: 布尔矩阵的奇偶性 C++(带你看懂每一步)

1126: 布尔矩阵的奇偶性 题目描述       一个布尔方阵具有奇偶均势特性,当且仅当 每行、每列总和为偶数,即包含偶数个1。如下面这个4*4的矩阵就具有奇偶均势特性:       1 0 1 0        0 0 0 0       1 1 1 1       0 1 0 1       编写程序,读入一个n阶方阵并检

数字特征值

2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶

Secret of Tianqiu Valley 题解

link Solution 不难看出,我们可以通过枚举 \(1,2\) 位置来确定每个位置的奇偶性,然后考虑如何对着我们构造的奇偶性来构造解。 不难发现,对于暗着的灯且奇偶性为奇数,我们肯定直接操作最优。然后对于当前没有暗灯且为奇数,如果存在暗灯且为偶数,那么两边一定存在一个亮的灯且奇偶性为奇

#c语言 判断一个整数的奇偶性#

#include <stdio.h> #include <stdlib.h> int main() { unsigned int number; int result; printf("请输入一个无符号整数: \n"); scanf("%d",&number); result=number%2; if(result==0) printf("整数%d是偶数!

22.1.16学习总结

经过寒假一个周的学习,学到了一些知识, 也弥补了我对他们的理解,就比如递归,在还没有刷这些acwing题之前,就是一知半解,但是通过做这些递归题,让我深度理解了递归这一算法. 其次还有位运算在解题时候的便捷方法,b >>= 1就是b/2,b & 1便是可以看出b最后一位的奇偶性,非常的便捷, 位运算和快

方法案例二:判断奇偶性

  public static void main(String[] args) {       //判断一个数的奇偶性       check(5);   }   public static void check(int number){       if (number % 2 ==0){           System.out.println(number+ "是偶数");       }else {      

Codeforces Global Round 18 D - X(or)-mas Tree(2-SAT)

原题 题目大意 给你一棵无根树,部分边边权未知。 给了两点,知道其简单路径边权的异或和的二进制中1的个数的奇偶性(以下简称奇偶性),求这棵树的所有边的边权。存在无解,输出No 题解 很容易证明二进制下奇数个1异或奇数个1为偶数个1,偶数个1异或偶数个1为偶数个1,奇数个1异或偶数个1为奇数

CF1615D X(or)-mas Tree

\(Link\) 题意:给定一棵 \(n\) 个点的无根树,每条边有边权。若边权为 \(-1\) 则边权暂定。 然后有 \(m\) 条限制条件,每个条件给出形式为 \((u,v,w)\),表示将 \(u\) 到 \(v\) 最短路径上的边权异或起来,用二进制写出后 \(1\) 的个数的奇偶性。 然后构造一种方案,把所有边权确定下来,要求

Codeforces Round #759

最近开始补cf题,尽可能补完所有div2+edu,fft啥的可能不会补( A 模拟不解释 B 发现这个过程相当于你每次找到一个数在原序列中左边第一个大于它的数,问跳几次能跳到max 然后我就写了个单调栈( 被教育了一波发现倒着for一for就好了,wssb C 首先正负分开考虑 不难发现如果强制回原点,则每次

HDU1010(DFS+奇偶剪枝)

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,m,t,a,b,c,d; char map[10][10]; bool vis[10][10]; int dir[10][10] = {{0,1},{0,-1},{-1,0},{1,0}}; bool flag; void dfs(int x,int y,i