其他
文章平均质量分 91
其他
这里是一只小小琪
这里是一个追星程序员女孩
展开
-
洛谷 P1011 [NOIP1998 提高组] 车站
火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上、下车,但上、下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人。从第3站起(包括第3站)上、下车的人数有一定规律:上车的人数都是前两站上车人数之和,而下车人数等于上一站上车人数,一直到终点站的前一站(第n−1站),都满足此规律。现给出的条件是:共有n个车站,始发站上车的人数为a,最后一站下车的人数是m(全部下车)。试问x站开出时车上的人数是多少?原创 2024-03-23 21:23:08 · 715 阅读 · 0 评论 -
What a Ridiculous Election 【HihoCoder - 1426】【广搜预处理】
题目链接题目大意有一个五位数,有三种操作,问“12345“变成这个五位数需要几次操作:操作:1.交换任意相邻的两个位数2.选任意一个数使其加1,超过9取模10;3.选任意一个数使其乘2,超过9取模10;其中操作2最多用3次,操作2最多用2次。解题思路把12345丢到预处理里面去,然后把预处理出来的结果保存。广搜每次出来的都是最优先的,所以不用每次取最小值判断。#include&...原创 2019-11-06 09:45:24 · 130 阅读 · 0 评论 -
Lock Puzzle 【CodeForces - 936C】【思维】
题目链接Welcome to another task about breaking the code lock! Explorers Whitfield and Martin came across an unusual safe, inside of which, according to rumors, there are untold riches, among which one ca...原创 2019-11-01 17:18:18 · 180 阅读 · 0 评论 -
Equalize the Remainders 【CodeForces - 999D】【思维】
题目连接题目大意有n个数的序列,有一个m,保证m被n整除,每次操作可以任选一个数使其加一。问操作多少次可以使得这些数取模m得到的1到m-1的个数都为n/m解题思路我们开一个set记录取余后小于n/m的数,然后枚举每个数字。取余小于n/m的就不用管,大于的让他加1编程大于等于他最小的那个set里的数#include<bits/stdc++.h>using namespace ...原创 2019-11-01 10:12:53 · 111 阅读 · 0 评论 -
Tree 【HDU - 6228】【思维】
题目链接解题思路一个点如果有效一定是它的子树的点大于k 并且 n-子树 也大于k比赛的时候想的太复杂了#include<bits/stdc++.h>using namespace std;const int N=2e5+5;struct node{ int v,nex;};node e[N*2];int f[N],tot,n,m,k;int siz[N...原创 2019-10-30 20:14:46 · 106 阅读 · 0 评论 -
Rng 【HDU - 6574】【概率】
题目链接题目大意有一个长度为n的数轴 [1,n],要取两个区间,取区间的方法为:等概率的在[1,n]中取一个数 r,作为右端点,再在[1,r]中等概率的取一个数 l 作为左端点。问取的这两个区间相交的概率是多少。解题思路从网上盗个图#include<stdio.h>#include<string.h>#include<algorithm>us...原创 2019-10-25 21:20:58 · 167 阅读 · 0 评论 -
Kirk and a Binary String 【Codeforces Round #581 (Div. 2)】【思维】
题目链接题目大意有一个01串t,让你求一个01串s,使得,s串中所有子串的中的最长不下降子序列的长度等于t串中相应位置子串中的最长不下降子序列的长度,使0的个数最多,输出s解题思路因为这个串只包含0和1,所以,一个子串中的最长上升子序列要么是0开头的要么是1开头的。如果当前位置是1,那么如果把他换成0,就要使得他后面的1的个数大于0的个数,不然长度就会改变。具体一点就是上面说的#i...原创 2019-09-09 21:13:18 · 151 阅读 · 0 评论 -
D. Shortest Cycle 【Codeforces Round #580 (Div. 2) D】【思路+最小环】
题目连接题目大意有n个数可以看做是n个点,如果ai & aj !=0,那么点 i 和点 j 可以连一条无向边。问这个图出点数最小的环的大小事多少,如果没有环就输出-1;解题思路如果 x&y != 0 那么x的二进制和y的二进制至少有一位是1,所以如果这n个数中有3个数的二进制都是1,那么这三个数可以围成一个环。其他情况就是每一位最多只有两个数是1,那么最多是64*2个数,...原创 2019-09-13 10:45:33 · 132 阅读 · 0 评论 -
C. The Number Of Good Substrings 【 Educational Codeforces Round 72 (Rated for Div. 2) C】【思维】
题目链接题目大意给你一个二进制01串,问你这个串有多少个好子串,设子串的起始和终止下标为 l 和 r ,那么好子串的定义为二进制子串换为十进制的数是等于(r-l+1)的解题思路因为这个串最长2e5,所以枚举的长度不超过18,但是因为有前导零的存在,我们不能只枚举长度为18的区间我们用一个res来记录一下每个1前面有多少个前导零,如果当前的二进制数是小于等于res+r-l+1&&a...原创 2019-09-17 16:28:21 · 150 阅读 · 0 评论 -
P3878 【TJOI2010分金币】【模拟退火】
题目链接题目大意有n个硬币,每个硬币有一个价值,问你把这些硬币分成两堆,最小的差值是多少解题思路其实这个题是个深搜题,但是模拟退火也可以做随机找两个数交换位置,然后不断更新答案(模拟退火真是个神奇的玄学算法)#include<bits/stdc++.h>using namespace std;const int N=105;const double eps=1e-...原创 2019-09-25 10:32:07 · 112 阅读 · 0 评论 -
Kangaroo Puzzle 【Gym - 101981K 2018南京】
题目链接我写过的最玄学的代码。。。。这个题太秀了#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;char s[25][25];int main(){ int n,m; scanf("%d %d",&n,&m); ...原创 2019-09-25 17:52:10 · 289 阅读 · 0 评论 -
Puzzle Game 【HihoCoder - 1634】【最大子矩阵】
题目链接题目大意有一个n*m的矩阵,问你修改一个数(也可以不修改),矩阵中的最大子矩阵的最小值是多少解题思路#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int N=205;int u[N],d[N],l[N],r[N],sum...原创 2019-09-30 09:16:15 · 140 阅读 · 0 评论 -
Best ACMer Solves the Hardest Problem 【Gym - 101955G】【暴力枚举】
题目链接题目大意有一个的矩阵,n个点,每个点有一个权值,m次操作,有四种类型1.增加一个点在x,y,权值为w2.删除在x,y的点3.在(x,y)距离为k的点都增加w的权值4(x,y)距离k的点的权值和解题思路因为k只有1e7所以暴力枚举出来所有的可能的组合,然后暴力memset会超时,所以把点存一下,最后清零#include<stdio.h>#include<...原创 2019-10-03 21:13:00 · 535 阅读 · 0 评论 -
A Partial Order Relation 【UVALive - 8270】【质因数分解+思维】
题目链接题目大意题意。。emmmm还是读题吧,大概就是看数有多少个线解题思路看图可以看出来,和每个数相连的线的个数是他的素因子的个数所以我们把素因子的个数筛出来,然后,列出所有的组合方式的个数,就是答案了(2,3)和(3,2)算两种,因为6有两条线#include<stdio.h>#include<string.h>#include<algorith...原创 2019-10-07 10:19:39 · 287 阅读 · 0 评论 -
E. Let Them Slide 【Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) 思路+set】
题目链接题目大意有一个n*m的矩阵,每一行有一个长度为k的数组,数组可以再不越界的情况下在当前行滑动。问你每一列的最大和是多少解题思路刚开始的时候,写了一发单调队列,复杂度大概在O(n*m)左右,然后果断断超时了。正解是:用一个in和out去存一下,每个数在哪一列开始可以出现,在哪一列结束,这个区间这个数都可以到达,然后就是用set存一下,每一行当前列的最大值,然后用ans统计一下就好...原创 2019-09-09 10:30:54 · 149 阅读 · 0 评论 -
D. Tolik and His Uncle 【Codeforces Round #569 (Div. 2) D】【思维】
题目链接题目大意有一个n*m的格子,假如你现在在(a,b)这个点,你可以选择任意的(x,y)然后跳跃到(a+x,b+y)上,问你现在在点(1,1)上,x,y每次都不能重复,问你可不可以走完所有的格子解题思路如果这不是一个二维的题,这是一个一维的,那么就是一条线,想要按规则走完这个线就是按照中间对称来(1,1)到(1,m)到(1,2)到(1,m-1)… … 这样扩展到二维就是按照中心对称来...原创 2019-08-22 14:28:18 · 172 阅读 · 0 评论 -
E. Count Pairs 【Codeforces Round #572 (Div. 2) E】【同余+方程转换】
题目链接题目大意在一个数组中找出所有的对数(i,j) 使得(ai+aj)(a2i+a2j)≡kmodp.输出符合题意的i,j有多少对解题思路两遍同乘(ai -aj)得:(ai4-aj4)mod p = = k*(ai - aj)mod p移项可得:(ai4 - k*ai)%p = = (aj4 - k aj)%p所以就是数组中所有(ai4 - kai)%p 相同的对数#include...原创 2019-08-17 15:53:30 · 109 阅读 · 0 评论 -
permutation 1 【HDU 6628】【暴力全排列】
题目链接题目大意我们定义1到n的全排列的“差排列”为n-1个数:p2-p1 , p3-p2 , … … … pn - pn-1让你求出n的全排列的差排列字典序的第k大。解题思路因为k不大于10000所以可以采用爆搜的解法,当n不大于8的时候直接爆搜出它的全排列,如果n大于8的话,那么前面的数是固定n, 1, 2,… …所以只用求出后面的八位的全排列即可。两个搜索其实可以并到一个dfs...原创 2019-08-06 14:28:48 · 156 阅读 · 0 评论 -
F2. Script Generation 【codefores】【二分+爆搜+剪枝】
题目链接题目大意有n个男生n个女生,先有k个配对方式(r,l,w)第r个男生和第l个女生配对会有w的去权值产生,一个男生或者女生只能配对一次,问你所有的配对方式中,产生权值第t大的是多少。配对方式可以是没有任何男生和女生配对。解题思路这个题的思路是真的巧妙我的天。二分产生的权值,dfs搜一下当前比当前权值少的配对方式有多少种,更新答案。#include<stdio.h>#...原创 2019-08-06 16:37:47 · 165 阅读 · 0 评论 -
G. Dreamoon and NightMarket 【CF 101234G】【子集第k大 二分剪枝枚举】
题目链接题目大意有一个长度为n的数组,问你这个数组里所有的非空子集的和的第k大是多少解题思路二分子集的和,判断是否满足条件,去枚举每一个子集,判断不大于mid的有多少个。当开始的时候,我的cnt枚举到结束的时候才++,其实有新元素加入的时候就可以++了,这样比较省时。#include<stdio.h>#include<string.h>#include<...原创 2019-08-07 09:15:26 · 357 阅读 · 0 评论 -
Vacation 【多校1 HDU 6581】【思路/二分】
题目链接大概题意有n辆车,每个车有一个到终点的距离,车身的长度和速度,车不能超车,最小车距为0,所有车通过的最小时间。解题思路我们考虑第一辆车如果全程都没有依附于任何车那么它的通过时间就是t1=s[1]/v[1];如果它碰到了第二辆车,那么时间就为t2=(s[2]+l[2])/v[2]显然,如果t1<t2的话就会撞上,如果t1<t2的话就不会撞上,其他的情况也是一样的,我们...原创 2019-08-09 11:02:26 · 110 阅读 · 0 评论 -
Rikka with Coin【多校9 HDU 6685】【暴力】
题目链接题目大意有4中硬币100,10,20,50,有n种商品,现在要买着n种商品中的其中一个,那么至少带多少个硬币会使得不管买哪个商品都不会找零解题思路比赛的时候没有想到110,90 这种带四个硬币就够了:20 20 20 50我们想10块的不会超过1个,20的不会超过3个,50的不会超过1个,那么就饿枚举暴力这几种情况,判断哪个能符合题意出来的硬币数是最少的#include<...原创 2019-08-20 09:27:58 · 138 阅读 · 0 评论 -
Acesrc and Good Numbers 【多校8 HDU 6659】【数位dp+思维】
题目链接题目大意规定f(d,n)=x的含义为从1到n之间的数,每个数位上出现d的次数我们说f(d,n)=n是一个good number ,给定d和x找出小于等于x的最大的good number解题思路我们先算出来f(d,x)=y,因为每个数上的最多有18位,所以我们每次减少(abs(x-y))/18.算f(d,x)的时候我们用数位dp算;我们设现在位置是第pos位,那么比pos位小的...原创 2019-08-15 10:10:00 · 223 阅读 · 0 评论 -
Find the answer 【HDU 6609】【multiset 】
题目链接题目大意给出一个序列,问你到i时,要删除多少个数才能使从1到i的和小于m解题思路用数据结构multiset 可以插入多重复值还可以自动排序#include<stdio.h>#include<string.h>#include<algorithm>#include<set>using namespace std;multis...原创 2019-08-11 15:37:21 · 93 阅读 · 0 评论 -
C. Vus the Cossack and Strings 【Codeforces Round #571 (Div. 2) C】【思维】
题目链接题目大意有一个串a和串b,都是01串,a串的长度大于等于b串,设a串中的长度为b的子串为c,问所有的f(b,c)的值是偶数的有多少个,f(x,y)的定义为串x和串y相同位置值不同的个数。解题思路想了大半天的异或,发现还是和个数有关。。。。。当f(a,b)是偶数时,a串和b串的奇偶性是相同的,这个在纸上画一下就明白了。之后我们就可以用前缀和在线性的时间求出答案#include&...原创 2019-08-21 09:20:27 · 96 阅读 · 0 评论 -
E. Matching vs Independent Set 【 Codeforces Round #576 (Div. 2) E】【思路】
题目链接题目大意就是给你一个含有3×n 个节点,m条边构成的图,求一个含有n 条边的匹配或者n 个节点的独立集,两者都不存在的话输出Impossible解题思路刚开始想着二分图最大匹配,时间又不允许,然后才知道其实不用最大匹配,随便一个匹配就行了,因为匹配完剩下的点就是节点独立集。我们考虑一个边的匹配,这个匹配里面要么边小于n,要么大于等于n,当匹配的边小于n时,这个匹配所占的点一定小于...原创 2019-08-16 11:00:00 · 143 阅读 · 0 评论 -
B. Nick and Array 【Codeforces Round #569 (Div. 2) B】【思路】
题目链接题目大意有一个操作a是在一个数列里找随意一个数x把它变成-a-1,给你一个数组,你可以对这个数组进行任意次a操作,使得这个数组的乘积最大解题思路我们可以发现一个数是正数的时候,进行a操作会使得它的绝对值加一,负数进行一次操作使得绝对值减一,所以我们先把所有的整数都进行a操作,然后,如果n是一个偶数,直接输出,如果n是一个奇数,就把数组中最小的负数进行一次a操作就可以了做这个题的时...原创 2019-08-22 10:11:43 · 129 阅读 · 0 评论 -
Roundgod and Milk Tea 【多校8 HDU 6667】【Hall定理】
题目链接题目大意有n个班级,每个班级有ai个人,一个班级可以做出bi杯奶茶,一个班级的人不能喝本班做的奶茶,可以喝别的班做的奶茶,问最多有多少人喝到奶茶解题思路这个题推的我也是有点迷。用到了一个加Hall定理的东西,那我们先开看看啥是Hall定理:这个定理还是很好理解的,虽然我不会证明,这个不重要… … 对这个题重要的是这个定理有一个推论:这个NG(W)的意思是和W相连的节点数所...原创 2019-08-17 09:58:46 · 325 阅读 · 1 评论 -
C. Candies! 【Codeforces Round #572 (Div. 2) C】【思维+前缀和】
题目链接题目大意有2k个数,然后我们每次把相邻的两个数相加%10,就是第一个数和第二个数一组相加取余10,第二个和第三个数相加取余10… … … 这样下去,2k个数变为2k-1个数直到变为1个数,问你这么多次取余的过程中和大于10的有多少次解题思路比赛的时候脑子坏掉了… … … 竟然没有想到一个区间【l,r】取余进位的次数,就是这个区间的和除10的商。因为每次取余的结果就是和的个位数,还...原创 2019-08-17 10:37:25 · 163 阅读 · 0 评论 -
D1. Add on a Tree 【Codeforces Round #572 (Div. 2) D1】【思维】
题目链接题目大意有一棵树,每次操作可以随意找两个叶子节点,使得这两个节点之间的最短路径上加上任意的值,问你是否可以在有限的操作里使得让这个树的每一个边有任意的值。解题思路就是找一下这个树中有没有度为2的节点,如果有就不可以。因为度数一旦大于2,那每次加上的值就可以用另一个边减去,就可以得到任意的值了。#include<stdio.h>#include<string....原创 2019-08-17 11:37:10 · 91 阅读 · 0 评论 -
permutation 2 【HDU 6630】【全排列相关】
题目链接题目大意让你求符合题意的全排列有多少个,要求:1.第一个数为x2.第n个数为y3.两两数之间的差小于等于2解题思路当第一个数为1第n个数为n,两两数之间的差小于等于2时,排列的个数为a[i] = a[i-1] + a[i-3];当的第n个数不为n时,在纸上画一画就知道,n到y的这些数是挤在y的附近的(排列方式唯一),y-1是最旁边那个数,这就简化为1是第一个数,y-1是最...原创 2019-08-06 09:24:13 · 136 阅读 · 0 评论