有编号1~100个灯泡,起初所有的灯都是灭的。有100个同学来按灯泡开关,如果灯是亮的,那么按过开关之后,灯会灭掉。如果灯是灭的,按过开关之后灯会亮。现在开始按开关。第1个同学,把所有的灯泡开关都按一次(按开关灯的编号: 1,2,3,......100)。第2个同学,隔一个灯按一次(按开关灯的编号: ...
分类:
编程语言 时间:
2020-07-17 16:22:00
阅读次数:
110
①每个K从最左边进行考虑 ②f[i]=[i,i+k-1]是否进行反转:1代表是,0代表否 ③∑ (i)(i=i+1-K+1) f[j]=∑ (i-1)(i=i-K+1) f[j]+f[i]-f[i-K+1] 1 #include<cstdio> 2 #include<iostream> 3 #inc ...
分类:
其他好文 时间:
2020-01-23 19:51:17
阅读次数:
58
题目链接:https://vjudge.net/problem/FZU-1704 题意:经典开关问题,求使得灯全0的方案数。 思路:题目保证至少存在一种方案,即方程组一定有解,那么套上高斯消元法的板子,求出自由变元的个数t,方案总数即2t,t可能大于64,要用到高精度计算。 AC代码: ...
分类:
其他好文 时间:
2019-11-02 11:46:52
阅读次数:
81
题目链接:http://poj.org/problem?id=1753 题意:经典开关问题,和poj1222一样,进行两次高斯消元即可,只用初始化的时候改一下初始状态。可能存在无解或多解的情况,多解要枚举自由变元的所有状态。 AC代码: ...
分类:
其他好文 时间:
2019-10-31 18:17:01
阅读次数:
97
E题一个下午自闭,被吊打是日常的事情,不用奇怪。 刚开始是当成类似灯的开关问题,从左到右把1e9的长度分成最多2*n段然后还特判了一小时,再二分,结果......当然.......TLE 之后看正解,是对特定的点进行差分,把渔夫当成是点,对于每一条鱼的区间加1,然后一次性得到答案 http://co ...
分类:
其他好文 时间:
2019-10-13 00:20:59
阅读次数:
118
POJ3276 题意: N 头牛排成一列,每头牛或向前或向后。每次可以反转连续的 K 头牛,求出让所有的牛都能面向前方所需要的最少操作次数 M 和对应的最小的 K。 解法: 首先加入顺序的枚举每个以向后的牛开始的区间,让其反转,之后检查可行性,复杂度为 $O(n^3)$,即顺序遍历、反转、寻找第一个 ...
分类:
其他好文 时间:
2019-10-03 17:58:38
阅读次数:
72
https://www.acwing.com/problem/content/210/ 要注意两点:开关之间的关系不一定是对称的,并且每个开关会控制自己。 消元的过程中可以计算出矩阵的秩,假如某个行没有主元但是有常数,那么就直接 1了。 cpp include using namespace std ...
"嘟嘟嘟" 这题思路还是挺奇特的,神奇的利用了自由元的性质。 看到这种题,第一反应是设$2 ^ n$个状态,然后解方程组。但对于这题来说显然过不了。 我们还是用高斯消元,对于每一个开关$i$,令$f[i][n + 1] = a[i]$^$b[i]$,$a[i]$表示$i$的初始状态,$b[i]$为结 ...
分类:
其他好文 时间:
2019-07-10 16:25:59
阅读次数:
78
题目一览 分类 解题报告 Educational Codeforces Round 65 (Rated for Div. 2) D 贪心 [1] [2] hdu 2476 区间DP [1] poj 3279 开关问题 [1] Codeforces Round #525 (Div. 2) D [1] ... ...
分类:
其他好文 时间:
2019-05-22 11:30:01
阅读次数:
97
1. 对于一个特定的 K 如何求出让所有牛面朝前方的最小操作数。如果把牛的方向作为状态进行搜索的话,由于状态数有 2N 个,是无法在时限内得出答案的。 首先,交换区间反转的顺序对结果是没有影响的。此外,对同一区间进行两次以上的反转是多余的。由此,问题就转化成了求需要被反转区间的集合。先考虑一下最左端 ...
分类:
其他好文 时间:
2019-05-11 18:11:20
阅读次数:
128