题目: 给定一颗树··在保证有k个点与其它点连接的情况下问最少保留多少条边···· 树的节点树n和k均小于100000: 题解: 很容易看出来我们要尽量保留那种一条边连两个节点的情况···· 然后考试的时候我以为这就完了··xjb贪完心后错了一大半···· 下次一定要写对拍了,艹 贪心的时候我们要沿着叶子节点来贪心···这样就能保证正确性了···证明的话就不细说了··不信的话打个对拍看看··· 代码: #include<iostream> #include<cstdio> #inc…
题目: 给定两个数字n,求有多少个数字b满足a^b和b^a同余于2^n,其中n<=30,a<=10^9, 题解: 挺巧妙的一道题···从中深深体会到打表的重要性··· 首先根据ab奇偶性分情况讨论···若ab奇偶性不同的话肯定不会满足条件···因此要么ab同时为奇数··要么同时为偶数·· 若ab同时为奇数··根据打表(证明考试时我是想不到的···)可得只有当ab相等时条件才成立·· 若ab同时为偶数···当b<=n时可以直接暴力求··当b>n时,可以解得a^b肯定是可以被2^n整除…
题目: 有一个无限长的纸带··上面被划分为若干个格子··现在进行N次操作,第i次操作在L到R上擦出曾经写上的数字(如果有),并写上数字i,询问最终可以看到多少个数字 N小于10^6 题解: 首先毫无疑问离散化,但注意离散化时候如果相邻两个数的差大于1··需要在中间插入一个在两数之间的数···不然会错·· 然后正常的方法可以线段树来搞··然而可能被卡常·· 最快的方法同时也是最巧的方法:并查集,我们将询问倒着来··然后用并查集维护每次染色的最右端的位置,具体实现看代码,可以证明为O(n)的复杂度…
\(NOIP\)模拟题汇总(加厚版) T1 string 描述 有一个仅由 '0' 和 '1' 组成的字符串 \(A\),可以对其执行下列两个操作: 删除 \(A\)中的第一个字符: 若 \(A\)中 '1' 出现的次数为奇数,则在 \(A\) 的末尾插入 '1',否则在 \(A\) 的末尾插入 '0'. 现在给出一个同样仅由 '0' 和 '1' 组成的字符串 \(B\),请你判断 \(A\) 能否在任意多次操作后转化为 \(B\). 输入 输入文件第一行一个正整数 \(T\),表示有 \(T\…
  8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU 评测软件 Lemon 评测方式 忽略行末空格和回车 特别注意:c/c++ 选手使用 printf 输出 位整数请使用%lld 注意事项 A 债务 文件名                            输入文件             输出文件            时空限制 debt.pa…
贪心算法篇 # 题名 刷题 通过率 难度 44 通配符匹配   17.8% 困难 45 跳跃游戏 II   25.5% 困难 55 跳跃游戏   30.6% 中等 122 买卖股票的最佳时机 II C#LeetCode刷题之#122-买卖股票的最佳时机 II(Best Time to Buy and Sell Stock II) 48.8% 简单 134 加油站   40.0% 中等 135 分发糖果   33.0% 困难 316 去除重复字母   21.6% 困难 321 拼接最大数   20…
\(noip模拟23\;solutions\) 怎么说呢??这个考试考得是非常的惨烈,一共拿了70分,为啥呢 因为我第一题和第三题爆零了,然后第二题拿到了70分,还是贪心的分数 第一题和第二题我调了好久,hhhh 害,害,害,害 · \(T1\;联\) 据出题人说,这是个线段树裸题,啊啊啊,我看到1e5的时候也觉得这是个简单的线段树 后来看到1e18我就溜走了,后来回来看,发现这个可以\(O(n^2)\)链表做 打对了1,2操作,忘记换行了0分,应该是30分 这个题说白了就是利用线段树维护值,不…
noip模拟35 solutions 这是我第一次这么正式的考四个题,因为这四个题都出自同一个出题人,并不是拼盘拼出来的. 但是考得非常的不好,因为题非常难而且一直想睡觉.. 有好多我根本就不会的算法,比如说笛卡尔树,时至今日我还是不会 对我来说好像并不是一个很大的提升,因为好多题我不能只看着题解改出来 总是要问别人.....我好菜啊好菜啊好菜啊 T1 玩游戏 其实这个题我在考场上的时候已经想到了正解的一半, 一眼看过去这就是个贪心,我就在草稿纸上手推贪心策略,推了半天发现到了最小值就走不动了…
这段时间在NOI题库上刷了刷题,来写点心得和题解 一.寻找平面上的极大点 2704:寻找平面上的极大点 总时间限制:  1000ms  内存限制:  65536kB 描述 在一个平面上,如果有两个点(x,y),(a,b),如果说(x,y)支配了(a,b),这是指x>=a,y>=b; 用图形来看就是(a,b)坐落在以(x,y)为右上角的一个无限的区域内. 给定n个点的集合,一定存在若干个点,它们不会被集合中的任何一点所支配,这些点叫做极大值点. 编程找出所有的极大点,按照x坐标由小到大,输出极大…
这里可以复制样例: 样例输入: agnusbgnus 样例输出: 6 这里是链接:[入门OJ]2003: [Noip模拟题]寻找羔羊 这里是题解: 题目是求子串个数,且要求简单去重. 对于一个例子(agnus这个单词只出现过一次):abcagnusbgnus 它的满足子串就有以下几种情况: ①自身:agnus: ②和前面的字符组合:abcagnus.bcagnus.cagnus; ③和后面的字符组合:agnusbgnus.agnusbgnu.agnusbgn.agnusbg.agnusb; ④两…