Being a Good Boy in Spring Festival 尼姆博弈 求出异或和之后,\(sum \oplus num[i]\) 就是除去当前值,其他数字的异或和,为了使整体异或为 0,所以就要让此时的 \(num[i]\) 变成 \(sum \oplus num[i]\),因此,如果 \(num[i] > sum \oplus num[i]\) 则改变这个 \(num[i]\) 可行,等于的时候
pairs 给出n个数字,问有多少个对数字的差的绝对值小于等于 k 尺取 排序之后,用尺取,固定左端,看看多少个数字 k>=num[l] 即可 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #include <queue> #include <functional> #inc
Finding Seats 方格中只有数字 1 和 0,求最小的矩阵,使得其和大于等于 k 尺取 首先思考暴力,枚举行和列的起点和终点,时间复杂度是 \(O(n^4)\),显然不可行 接下来考虑优化,如果只是一个一维的,题目转化为,求一个连续的区间,使得其和大于等于 k 上述这个问题一眼可以看出能够使用尺取 因此针
No Gambling 简单博弈 我表示很不理解为什么,但是总觉蓝就是比红多一步,不论是红采取堵人或者自己走自己的策略,都是比蓝慢一步 状态又太多了没法分析,试了一下居然过了,也没翻到什么详解的 blog #include <iostream> using namespace std; int main() { int n; ios::sync_wit
String 给出字符串,问有多少个子串包含n个不同的字母 尺取模板 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #include <queue> #include <functional> #include <map> #include <set> #i
First One 给出n组数,下标从1到n,求一个表达式\(\sum_{i=1}^{n}\sum_{j=i}^{n}(⌊log_2S(i,j)⌋+1)×(i+j)\) 函数\(s(i, j)\)指的是区间\([i,j]\)的和 尺取法 这题的难点在于 如何发现他是尺取 首先我们的第一反应就是暴力,然后暴力会超时 接着观察公式有两个项,如果是通过第二个
题目链接:https://vjudge.net/problem/HDU-2087 居然WA #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int nxt[1010]; void get_nxt(char t[]){ int j=0, k=-1; nxt[0]=-1; int tlen=strlen
题目传送门 一、解题思路 挖坑待填 二、在树状数组内二分 三、在树状数组外二分
题目传送门 本题是单点修改,区间求极大极小值的模板题。 一、数组的含义 1、在维护和查询区间和的算法中,\(t[x]\)中储存的是\([x,x-lowbit(x)+1]\)中每个数的和。 2、在求区间最值的算法中,\(t[x]\)储存的是\([x,x-lowbit(x)+1]\)中所有数的最大值。 3、求区间最值的算法中还有一个\(a
题目传送门 https://www.bilibili.com/video/BV1Tk4y1m7VM?p=23 没看懂,等功力够了,再来填坑吧 #include <iostream> #include <cstdio> #include <string> #include <ctime> #include <cmath> #include <cstring> #include <algorithm> #include <
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1061 水题快速幂,求余进行最后一个取尾操作就可以,坑点不大, 直接上代码: Talk is cheap. Show me the code. #include<bits/stdc++.h> using namespace std; long long t; long long fastpow(long long a,long long b) { lon
Daizhenyang's Coin 有连个人互相博弈,给出若干个硬币,其中有 \(n\) 个硬币正面朝上,其余背面朝上,每个人每次操作:选择 1、2、3 个(可不连续)的硬币,将其翻面。并保证最左边的硬币一定得是由正面朝上翻转到背面朝上,如果没有办法进行操作,则判定输,求判断当前是否是先手必输 翻硬币博弈 这种
Brave Game 一堆石子,有 \(n\) 个,两个人每次至多拿 \(m\) 个,且至少拿 \(1\) 个,刚好取完最后一个石子的胜利 巴什博弈 对 \(m + 1\) 取模即可,若为 \(0\) 则后手必胜,否则先手必胜 因为先手不管怎么取,后手都能使得两人摸取的石子总数为 \(m+1\) #include <iostream> using namespace s
Flyer 给若干个人派传单,派n次传单,每次都会给出一个a, b, c,代表在给在编号在[a, c]区间内,并且编号为\(a + kc\)的人 最后询问有谁是被派了奇数张传单,并且保证这种人最多只有一个 二分区间 这题的突破口在于奇数传单的人只有一个,由于偶数+偶数为偶数,偶数+奇数为奇数,所以对于前缀和来
1.burnside 定理,polya 计数法 简单题: 2409 -- Let it Bead (poj.org) 2154 -- Color (poj.org) 1286 -- Necklace of Beads (poj.org) 强烈推荐: 2888 -- Magic Bracelet (poj.org) 2. 置换,置换的运算 简单题 3207 -- Ikki's Story IV - Panda's Tr
题目传送门 定理:无向图 \(G\) 具有一条欧拉回路,当且仅当 \(G\) 是连通的,并且所有结点度数为偶数。 思路:不需要建图。并查集统计无向图中连通块的个数,开一个数组统计每个点的度数。 #include <bits/stdc++.h> using namespace std; const int N = 1010; int n, m; int p[N]; int
问题描述 每个女孩都喜欢购物,蒲公英也喜欢。现在她发现这家店因为春节快到了每天都在涨价。她喜欢上了一家叫做“memory”的店。现在她想知道这家店每天变化后的价格排名。 输入 一行包含一个数字n(n<=10000),代表商店的数量。 然后n行,每行包含一个字符串(长度小于31,只包含小写字母
STL应用 vector HDU 3527 STL应用 map HDU 3527 STL应用 queue poj 1915 STL应用 set hdu 1412 STL应用 map poj 2418 STL应用 map HDU 1263 STL应用 stack 计蒜客 T1655 线段树 HDU - 1166 敌兵布阵 线段树 POJ - 3468 A Simple Problem with Integers 线段树 poj 2777 Count Col
问题描述 有一楼梯共M 级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第 M 级,共 有多少种走法? 输入 输入数据首先包含一个整数 N,表示测试实例的个数,然后是 N 行数据,每行包含一个整数 M(1<=M<=40),表示楼梯的级数。 输出量 对于每个测试实例,请输出不同走法的数量 样本输入
问题描述 “ 改革春风吹满地, 不会 AC 没关系; 实在不行回老家, 还有一亩三分地。 谢谢!(乐队奏乐)” 话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也是云里雾里,而 且,还竟然来这么几句打油诗。 好呀,老师的责任就是帮你解决问题,既然想种田,那就分你一块。 这块田位
问题描述 还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 输入 输入数据包含多个测试实例,每个测试实例的输入只包含一个正整数n(1<=n<=30),表示 将要输出的杨辉三角的层数。 输出量 对应于每一个输入,
2022-01-29 今天依旧荒废时光到下午...慢慢调整吧 题目 问题描述 伊格内修斯正在建立一个在线法官,现在他已经解决了除法官系统之外的所有问题。系统必须从正确的输出文件和用户的结果文件中读取数据,然后系统比较这两个文件。如果两个文件绝对相同,则法官系统返回"已接受",否则
问题描述 作为杭电的老师,最盼望的日子就是每月的 8 号了,因为这一天是发工资的日子,养家糊口 就靠它了,呵呵 但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就 在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每 位老
本题是一道DP Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2_k件过去就行了.但还是会很累,因为2_k也
问题描述 青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低 分,然后计算平均得分,请编程输出某选手的得分。 输入 输入数据有多组,每组占一行,每行的第一个数是 n(2<n<100),表示评委的人数,然后是 n 个评委的打分。 输出量 对于每组输入数据,输出选手