OI/ACM Solution
QASWINE
Informatik verbindet dich und mich.
展开
-
[SDOI2012]基站建设(斜率dp)
题目描述 DescriptionUp主家终于买电脑了,但是接下来有各种问题要处理。首要解决的问题就是网络问题。他要从移动公司开始,通过一些基站来传递网络到他家。为了简化问题,我们假设移动公司,所有的基站,up主家位于同一条直线上,他们都位于这一条直线上的某一点x,这些点不会重合。每个基站发射和接收的范围都是一个切于地面的圆,发射的半径r1是固定的,接收半径r2是可调的的。如下图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6RG2GWHt-159715445029.原创 2020-08-19 11:47:39 · 2010 阅读 · 0 评论 -
[SDOI2012] 吊灯(树形dp)
吊灯(divide)题目描述Alice家里有一盏很大的吊灯。所谓吊灯,就是由很多个灯泡组成。只有一个灯泡是挂在天花板上的,剩下的灯泡都是挂在其他的灯泡上的。也就是说,整个吊灯实际上类似于一棵树。其中编号为1的灯泡是挂在天花板上的,剩下的灯泡都是挂在编号小于自己的灯泡上的。现在,Alice想要办一场派对,她想改造一下这盏吊灯,将灯泡换成不同的颜色。她希望相同颜色的灯泡都是相连的,并且每一种颜色的灯泡个数都是相同的。Alice希望你能告诉她,总共有哪些方案呢?Alice是一个贪心的孩子,如果她发现方案.原创 2020-08-19 11:49:00 · 1518 阅读 · 0 评论 -
[POJ1065] Wooden Sticks(贪心)
题目:http://poj.org/problem?id=1065C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则需要消耗一个单位的时间。因为急着去约会,C小加想在最短的时间内把木棒处理完,你能告诉他应该怎样做吗?输入第一行是一个整数T,表示输入数据一共有T组。每组测试数据的第一行是一个整数N(1<=N<=5000),表示..原创 2020-08-19 11:48:37 · 794 阅读 · 0 评论 -
Noip 部分贪心题思路
[NOIP2012T2]国王游戏 这可是一道声名远扬的经典例题,其贪心思想应用广泛,但出题人编的这剧情真是毁了这道好题。。本题像大多数贪心题目一样,很容易得高分,但拿满分非常难。此外,这题数据比较水,犯几个致命的错误也扣不了很多分……我首先想到的办法是按右手排序。考虑最后一个位置,一定是右手最大的得到金币最少,于是解决掉最后一个人,倒数第二个人就到了最后一个位置,如此循环……结果得了70分,比标准答案大不少。看了题解之后,只改了一下排序的方式就AC了——最容易想到的办法离正解只有一...原创 2020-08-19 11:42:49 · 471 阅读 · 0 评论 -
[P1149] TSOI南湖探险(费用流)
背景NOIP2009,TSOI大爆发,创造了历史,书写了传奇。于是,在SRC的提议下,大家一起去南湖公园探险。描述南湖地区的地形错综复杂。这里有茂密的原始森林,有一望无际的湖水,有大自然一切钟灵毓秀的景物。孩子们一旦走散,彼此就再也看不见了,除非彼此选择的道路在前方的某个地方汇合。在TSOI光环的感召下,大家的审美和价值观趋于一致,对于相同景物感到的愉悦程度可以看做一样的。这种愉悦程度可以在斐波那契奥斯特洛夫斯基参考系(Universal Fibonacci Ostrovsky参考系,以下简称U.原创 2020-08-19 11:49:38 · 758 阅读 · 0 评论 -
[六省联考2017]分手是祝愿
一道不错的概率题,"相逢是问候"太神了,考试时没敢嗑这题。先考虑关灯的最少次数,一个开关按两次和没按一样,从大到小有亮的就灭掉,它的约数可以n\sqrt{n}n枚举,更快的做法是枚举约数i,找它的倍数i,i2,i3…,复杂度 n/1+n/2+n/3+...=n∗log(n)n/1+n/2+n/3+...=n*log(n)n/1+n/2+n/3+...=n∗log(n) ,这样就有80分了(* ̄︶ ̄)考虑期望,设f[i]表示从有i个正确选择变为有i-1个正确选择的期望操作次数,f[i]=in+(1−in原创 2020-08-19 11:45:41 · 226 阅读 · 0 评论 -
热身题(高斯消元)
热身题(j.cpp/c/pas)时间限制:1s空间限制:128M输入文件:j.in输出文件:j.out【问题描述】定义F:F(1)= 1,F(2)= 2,F(n) = F(n-1)+ F(n-2)(n >= 3)定义p:p(i) = a1*F(1)^i + a2*F(2)^i + …+ ak*F(k)^i其中k和a1…ak为常数。现在已知k,p(1),p(2),…,p(k),求p(k+1)。为了避免高精度,所有运算都模掉M。保证F(1...原创 2020-08-19 11:45:21 · 157 阅读 · 0 评论 -
古代猪文(组合数学XLucasX中国剩余定理)
/*题意:题目给出 n,g,要求所有满足 x 整除 n 的情况下,C(n,x)的和对 999911659 取余的结果作为幂,然后求g的这么多次幂取余的结果。思路:由于p=999911659 是个大素数,根据上篇写的指数循环节的相关知识可以得到 (g^y )%p = (g^(y%phi(p)+phi(p)))%p 同时phi(p)=p-1 带进去得到 (g^y)%p = (g^(y%(p-1)))% p关于由n和约数得到的组合数,用Lucas定理可以解决,跟前几篇写的一样,不过打阶乘表,只需要打到 35原创 2020-08-19 11:49:20 · 116 阅读 · 3 评论 -
zhuan [讲解] OI 字符串 常用哈希方法(by sxy sxy)
下面这个方法来自 算法竞赛入门经典-训练指南方法对于一个字符串s,令h[i] = h[i+1]*x + s[i] ,其中x是你自选的一个常数。令xp[i] = xp[i-1]*x这样之后定义s的起点为下标i,长度为len的子串的哈希值为 h[i] - h[i+len]*xp[len] 。这个值与子串的位置,子串的内容,还有你自选的常数都有关系。哈希值使用unsigned long long(如果不是oi,可以使用int128的话当然更好) 不同子串的哈希值一定不会相同吗?不一定,但是相同的概率非常非常转载 2020-08-11 21:30:33 · 2284 阅读 · 1 评论 -
Bzoj 矩阵模板 && Poj Constellations (矩阵hash)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2462给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在原矩阵中出现过。hash储存所有A*B的矩阵要用unsigned int#pragma warning(disable: 4786)#pragma G++ optimize ("O2")#pragma comment(linker, "/STACK:1024000000,1024000000")#inc原创 2020-08-19 11:44:50 · 134 阅读 · 0 评论 -
[2020 年百度之星·程序设计大赛 - 复赛] Binary Addition
题解+1会把前面所有1变成0,第一个0变成1,也就是批量消除前缀1,显然他只会用一次,枚举时机就好了如果a[i]是0,次数为a[0 ~ i-1]中0的个数+b[0 ~ i-1]中1的个数+1(+1次数)+后面常规替换次数,如果b[i]=0还要把a[i]变一次如果a[i]是1 花一次机会把a[i]变成0 同上.代码#include <iostream>#include <cstdio>#include <cstring>using namespace st原创 2020-08-09 23:00:45 · 2549 阅读 · 1 评论 -
[2020 年百度之星·程序设计大赛 - 复赛] Battle for Wosneth
题解Alice打一次加1,概率p%,Bod打一次加1概率q%他们打一轮,期望得分p%-q%,有几轮哪?每轮Bod期望掉血p%,所以有m/(p%)轮,注意最后一轮Bod先挂了,没法反击所以答案是(m/(p%) - 1)(p%-q%) + 1p%注意m/(p%)不一定是整数,变换一下(m-pinv(100))(p-q)inv§+pinv(100)其中inv(i)是mod998244353LL的乘法逆元代码#include <iostream>#include <cstdio原创 2020-08-09 22:40:46 · 1406 阅读 · 0 评论 -
2020 年百度之星·程序设计大赛 - 初赛一题解
Drink对于每一种饮料,都可以算出最少需要多少瓶,从而知道最少摄入多少卡路里,从中找个最优值。#include <iostream>#include <cstdio>using namespace std;int main() { int T; cin >> T; while(T--) { int n,m,x[200],y[200]; cin >> n >> m; int ans = -1; for原创 2020-07-19 23:12:10 · 3091 阅读 · 2 评论 -
[leetcode 1444]切披萨的方案数(动态规划)
给你一个 rows x cols 大小的矩形披萨和一个整数 k ,矩形包含两种字符: ‘A’ (表示苹果)和 ‘.’ (表示空白格子)。你需要切披萨 k-1 次,得到 k 块披萨并送给别人。切披萨的每一刀,先要选择是向垂直还是水平方向切,再在矩形的边界上选一个切的位置,将披萨一分为二。如果垂直地切披萨,那么需要把左边的部分送给一个人,如果水平地切,那么需要把上面的部分送给一个人。在切完最后一刀后,需要把剩下来的一块送给最后一个人。请你返回确保每一块披萨包含 至少 一个苹果的切披萨方案数。由于答案可能是.原创 2020-05-13 18:10:53 · 550 阅读 · 0 评论 -
[Codeforces Round #638 (Div. 2)]D. Phoenix and Science
#include <iostream>#include <cstring>#include <algorithm>using namespace std; int n;typedef long long LL; bool pd(int t) {// if (n <= t) return 1; int n = ::n; in...原创 2020-05-02 02:22:01 · 262 阅读 · 0 评论 -
[Codeforces Round #638 (Div. 2)]C. Phoenix and Distribution
#include <iostream>#include <cstring>#include <algorithm>using namespace std; char s[100010];//vector<> int main() { int T; cin >> T; while(T--) { int n,t...原创 2020-05-02 02:21:04 · 189 阅读 · 0 评论 -
[Codeforces Round #638 (Div. 2)]B. Phoenix and Beauty
#include <iostream>#include <cstring> using namespace std; int n,k,a[101],v[101],ans[10010],ta; int main() { int t; cin >> t; while(t--) { cin >> n >> k; ...原创 2020-05-02 02:19:43 · 328 阅读 · 0 评论 -
Leetcode 146. LRU缓存机制(HASH)
运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。当缓存容量达到上...原创 2020-04-27 23:51:39 · 264 阅读 · 2 评论 -
Leetcode LCP 13. 寻宝(bfs+状压dp)
首先发现有用的点只有S,T,M,O,把他们提出来重新编号通过bfs寻找两两之间的最短路dis。0 <= M的数量 <= 16,0 <= O的数量 <= 40所以搜索量并不大。问题是从S开始经过所有M后到达T,如果不考虑O,这就是经典的旅行商问题。对于每个M点,达到之前必须经过一个O点,M,O并不多,这也就是说Mi经过O到Mj的最短路可以通过枚举O求得,记adis[M...原创 2020-04-26 18:05:50 · 509 阅读 · 0 评论 -
【PKU C++程序设计 第 7 周】编程作业: 编程作业—文件操作与模板
编程题#1来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 65536kB描述实现一个三维数组模版CArray3D,可以用来生成元素为任意类型变量的三维数组,使得下面程序输出结果是:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,...原创 2020-03-27 01:05:26 · 328 阅读 · 0 评论 -
[MOOC C++程序设计] 编程题#4: 魔兽世界终极版
这是今年写的代码最长的题了,细节很多这里有一个数据,可以面向数据debughttps://pan.baidu.com/s/1cCIwW8psGDASu2JdZawG3Q题面在代码后面#include <iostream>#include <cstring>#include <cstdlib>#include <iomanip>...原创 2020-03-25 23:28:28 · 935 阅读 · 0 评论 -
MOOC编程题#2: 魔兽世界之二:装备
描述魔兽世界的西面是红魔军的司令部,东面是蓝魔军的司令部。两个司令部之间是依次排列的若干城市。红司令部,City 1,City 2,……,City n,蓝司令部两军的司令部都会制造武士。武士一共有 dragon 、ninja、iceman、lion、wolf 五种。每种武士都有编号、生命值这两种属性。有的武士可以拥有武器。武器有三种,sword, bomb,和arrow,编号分别为0,1,...原创 2020-03-21 01:17:33 · 658 阅读 · 0 评论 -
[Codeforces Global Round 7] D2. Prefix-Suffix Palindrome (Hard version) (回文串,字符串hash)
题意You are given a string s, consisting of lowercase English letters. Find the longest string, t, which satisfies the following conditions:The length of t does not exceed the length of s.t is a pal...原创 2020-03-20 23:27:38 · 354 阅读 · 0 评论 -
[Codeforces Round #604 (Div. 2)]D. Beautiful Sequence(贪心)
An integer sequence is called beautiful if the difference between any two consecutive numbers is equal to 1. More formally, a sequence s1,s2,…,sn is beautiful if |si−si+1|=1 for all 1≤i≤n−1.Trans has...原创 2019-12-06 20:23:41 · 276 阅读 · 0 评论 -
[HDU6214] Smallest Minimum Cut (最小割)
Consider a network G=(V,E) with source s and sink t. An s-t cut is a partition of nodes set V into two parts such that s and t belong to different parts. The cut set is the subset of E with all edges...原创 2019-12-06 20:08:11 · 189 阅读 · 0 评论 -
[混乱]NOIP需要注意的细节
1, 位运算优先级[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aYzLuPR6-1574849576565)(https://leanote.com/api/file/getImage?fileId=58f6c488ab64415134005ec6)]2 重载 < 的const3 exgcd y -= x*(a/b);写成y -= xa/b;位...原创 2019-11-27 18:14:16 · 225 阅读 · 0 评论 -
[Codeforces Round #601 (Div. 2)]E2. Send Boxes to Alice(Hard Version)
简化版https://blog.csdn.net/qq_33831360/article/details/103170669就是数据变大了优化:k不是sqrt枚举,因为因子nk(个一组)结果可能不比因子k(个一组)好,所以分解质因数枚举质因子k枚举的方法:移动到点i后,积累了had<k个礼物,那么有两种选择,把这had个后移,或把k-had个前移。计算过程模拟的是后移,但实际上,对于...原创 2019-11-20 23:02:58 · 232 阅读 · 0 评论 -
[Codeforces Round #601 (Div. 2)]C. League of Leesins(构造技巧)
找到一个出现一次的作起点,找到一个出现两次并且和起点在同一3元组的为第二个点。把3元化为3个两元关系g[x][i] = y说明x,y相距<=2.把找到的点x都标记上v[x]=-1.对于以找到的最后两点s1,s2中,要找s3,s3是唯一一个没有标记而且和s1距离<=2的点,(g[s1][i]中没有标记的)#include <iostream>#include &l...原创 2019-11-20 20:40:11 · 313 阅读 · 0 评论 -
[Codeforces Round #601 (Div. 2)]E1. Send Boxes to Alice (Easy Version)(中位数)
题目: This is the easier version of the problem. In this version, 1≤n≤105 and 0≤ai≤1. You can hack this problem only if you solve and lock both problems.Christmas is coming, and our protagonist, Bob, ...原创 2019-11-20 20:29:45 · 416 阅读 · 0 评论 -
poj 4105 拯救公主(bfs+二进制状态压缩)
描述多灾多难的公主又被大魔王抓走啦!国王派遣了第一勇士阿福去拯救她。身为超级厉害的术士,同时也是阿福的好伙伴,你决定祝他一臂之力。你为阿福提供了一张大魔王根据地的地图,上面标记了阿福和公主所在的位置,以及一些不能够踏入的禁区。你还贴心地为阿福制造了一些传送门,通过一个传送门可以瞬间转移到任意一个传送门,当然阿福也可以选择不通过传送门瞬移。传送门的位置也被标记在了地图上。此外,你还查探到公主所在...原创 2019-11-13 21:28:07 · 514 阅读 · 0 评论 -
poj 7222 怀表问题(递推+空间压缩)
程序设计实习2015上机练习43题第42题总时间限制: 1000ms 内存限制: 32768kB描述怀表是由一个表链和一个表盘连接而成的。同时,表链又是由多个长度为1的表链组件连接而成的。小明现有一个表盘和多个长度为1的表链组件。他希望组合成一个完整的怀表当做生日礼物送给爸爸。表盘和表链组件的两端都有表扣可以和其它的表链组件或者表盘相连。 一共有两种表扣设计,分别是“L” 和“V”。表链组...原创 2019-11-13 21:24:29 · 525 阅读 · 0 评论 -
[Codeforces Round #588 (Div. 2)]F. Konrad and Company Evaluation(图论)
有i个人,m对两两之间的关系,第i个人初始的薪水为i,有q次操作,第i次操作会把v[i]号的薪水提升成n+i如果两个人之间存在关系,薪水高的会向薪水低的炫耀定义u,v,w为一个三元组,当u向v炫耀,v向w炫耀要求每次操作后输出当前三元组个数Konrad is a Human Relations consultant working for VoltModder, a large elec...原创 2019-11-12 23:20:47 · 292 阅读 · 0 评论 -
[Codeforces Global Round 5]D. Balanced Playlist(线段树)
题目原创 2019-11-10 23:21:54 · 161 阅读 · 0 评论 -
[Codeforces Round #599 (Div. 2)] B2. Character Swap (Hard Version)
题意https://codeforces.com/contest/1243/problem/B2给你两个长度为n的字符串s和t,你可以进行最多2n次操作。每次操作是选择i和j,然后交换s[i]和t[j],问你能否使得两个字符串相同。题解考虑贪心,假设我们已经考虑到了i位置,[0,i)区间的都已经相同了。如果s[i]!=t[i]的情况,我们考虑首先交换s[i]和t[j],即能否在t里面找...转载 2019-11-08 21:18:57 · 242 阅读 · 0 评论 -
[Codefroce 1242A] Tile Painting(数论)
实际把前10种手动模拟就能看个大概。本题有三种情况n是质数,答案显然是nn=pkp^kpk(p是质数),答案是p其他情况,答案是1。(假设n=x*y;x,y是n的因子。那么相隔ax+by的块颜色一样,不妨设x是质因子,x肯定和y=n/x互质,那么ax+by最小就是1)#include <iostream>#include <cstdio>#include ...原创 2019-11-08 00:26:15 · 363 阅读 · 0 评论 -
[Codefroces] D - Power Products (number theory)
题意给k,和n个数aia_iai,找ai∗aj=xka_i*a_j=x^kai∗aj=xk的个数方法:ai,aka_i,a_kai,ak质因数分解后,每个因子p的指数t一定是k的倍数。可以把>=k的指数t%k,不影响统计如果aia_iai的因子为P1t1∗P2t2∗...P_1^t1*P_2^t2*...P1t1∗P2t2∗...,那么aja_jaj的因子一定是P1k...原创 2019-10-29 23:47:44 · 231 阅读 · 0 评论 -
[codefroces 1251c]Minimize The Integer
奇数相对位置不变,偶数相对位置不变。把他们放两个栈里。每次从两个栈顶选最小的一个。 #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; ...原创 2019-10-26 01:57:08 · 211 阅读 · 0 评论 -
[Codefroce 1251B] Binary Palindromes
可以无限交换,那视为把x个1,y个0分配就行,贪心算法,优先满足短的。需要奇数个数,尽量破坏x,y中的的奇数,因为偶数可以随意分成奇数,但剩下一个1,一个0不能凑偶数#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespa...原创 2019-10-26 01:43:36 · 320 阅读 · 0 评论 -
[Codefroces 1251D]Salary Changing
二分答案,如果中位数m已经确定,那么可以如下判断把人分3份,工资一定小于m的mi个,一定>m的ma个,可以是m的cnt个所有人尽量选小的,看会不会超s还要注意人数够不够#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#d...原创 2019-10-26 01:32:28 · 194 阅读 · 0 评论 -
[Codeforces 1237C] Balanced Removals
n^2做法,枚举找每个点的曼哈顿距离距离最近点int dis(Data a,Data b) { return abs(a.x-b.x)+abs(a.y-b.y)+abs(a.z-b.z);} cin >> n; for (int i = 1; i <= n; i++) g[i].init(); for (int i = 1; i <=...原创 2019-10-18 15:35:24 · 452 阅读 · 2 评论