- 博客(93)
- 资源 (1)
- 收藏
- 关注
原创 51Nod 1021 石子归并 (区间dp)
原题链接:https://www.51nod.com/Challenge/Problem.html#!#problemId=1021#include <bits/stdc++.h>using namespace std;const int maxn = 110;int dp[maxn][maxn];int a[maxn];int sum[maxn];int n;int...
2019-07-05 11:35:52 178
原创 HDU 2884 Coins (多重背包)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2844多重背包模板题,就是他让求的是不大于m的钱数有多少种(多种方案钱数相同算一种),开个数组标记一下就好了。#include <bits/stdc++.h>using namespace std;const int maxn = 110000;int dp[maxn];int ...
2019-07-05 10:00:42 197
原创 Codeforces Round #571 (Div. 2) C. Vus the Cossack and Strings (异或)
原题链接:https://codeforces.com/contest/1186/problem/C题意:给你两个01串a、b,问a中长度为b的子串c,与b相对应位不同的个数加起来为偶数的有多少个?思路:既然是相对应位不同,那么会想到异或^。两个数(也可以是字符)的异或是不同为1,相同为0。异或两次同一个数(字符),相当于没有异或这个数(字符),异或值还是0。#include <bit...
2019-07-05 09:11:29 217
原创 HDU-2962 Trucking(dijkstra + 二分)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2962题意:一个货车要把一些货物从一个地方Start运到另一个地方End,希望每次运货尽可能多的运输货物。但是一些道路可能会限制运货的高度(-1时表示不限高度),而且出于安全问题,货车运的货不会超过一定高度H。求出不超过H的高度下,最多能运多少货物(用高度来衡量运输的货物量,即问不超过H下的最大高度)...
2019-05-07 11:18:02 254
原创 P3811 【模板】乘法逆元
原题链接:https://www.luogu.org/problemnew/show/P3811#include <bits/stdc++.h>using namespace std;typedef long long ll;ll inv[3000006];int n,p;int main(){ scanf("%d%d",&n,&p); i...
2019-04-17 21:14:38 206
原创 万能大数通用模板
如题,这个是个万能的大数模板,使用时只要定义个BigInteger n,然后这个n就可以按整型来操作了,平时写题很方便。//大数struct BigInteger{ static const int BASE = 100000000; //和WIDTH保持一致 static const int WIDTH = 8; //八位一存储,如修改记得修改输出中的%08d...
2019-04-11 13:55:54 197 6
原创 ZOJ-2313 Chinese Girls' Amusement (大数+数学思维)
原题链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2313题意:N个女孩站成一个圆圈,互相扔球。拿着球的第一个女孩把它扔给她左边的 第K个 女孩(1 <= K <= N / 2)。那个女孩接球,然后把它扔给她左边的第K个女孩,依此类推。直到它回到第一个女孩。并且每个女孩必须在比赛期间拿到球,求最大的K是...
2019-04-11 13:52:49 168
原创 POJ-3268 Silver Cow Party (Dijkstra)
原题链接:http://poj.org/problem?id=3268题意:有n个点,每个点都有一头牛,m条路,其他牛要去第 k 个牛那聚会,然后再回家,求这n-1头牛中去k点再回家 花费时间最长的那头牛的花费时间。思路:先跑一遍dijkstra,可以求出从k到其他地方的时间。再反向建图,再跑一遍dijkstra,可以求出从其他点到k点的时间。#include <iostream>...
2019-04-11 13:24:44 119
原创 HDU-1242 Rescue (BFS + 优先队列)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1242题意:angel被抓了,他的朋友们(可能不止一个)——用r表示,要去救他,路上有x表示守卫。上下左右移动要花一单位时间,杀死守卫也要花一个单位时间。问最少花多少时间才能救到angel。思路:由于有守卫,走带有守卫的路会花2时间。对于这用优先队列,优先走时间少的。还有一个坑点就是 r 可能有很多...
2019-04-11 12:38:07 163
原创 POJ-3273 Monthly Expense (二分)
原题链接:http://poj.org/problem?id=3273题意:给你n个数,让你按顺序分成k份,问你分成的这k份中最大的一份之和是多少。二分枚举答案即可#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>using namespa...
2019-04-11 11:35:18 161
原创 快速乘&&快速幂
快速幂ll kpow(ll a,ll b){ ll res = 1,base = ans; while(b){ if(b&1) res = res * base % Mod; base = base * base % Mod; b >>= 1; } return res;}快速乘时...
2019-04-04 11:37:24 145
原创 HDU-2544 最短路(dijkstra 邻接矩阵存图、链式前向星存图、链式前向星+优先队列)
链式前向星+优先队列#include <iostream>#include <cstring>#include <cstdio>#include <queue>using namespace std;const int N = 1e4+5;const int Inf = 0x3f3f3f3f;int vis[N],dis[N];in...
2019-03-22 11:32:52 328
原创 ZOJ-3021 Satan. Go Away (精度二分)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3021题意:先给你n,k,l,m四个数。然后是学期结束要给老师评分,老师的平均分低于 l 分就会被解雇。每个人可以评1到n的整数分,现在已经有m个人评分了,这m个人评分后老师的平均分是k。现在问你最少还要投多少票可以让这个老师被解雇。为了让老师被解雇,那么最少需要的这几个...
2019-03-21 11:20:42 203
原创 Codeforces Round #540 (Div. 3) D2. Coffee and Coursework (Hard Version)(二分)
https://codeforces.com/contest/1118/problem/D2题意是有n杯咖啡,m页论文,每杯咖啡所含咖啡因a[i],然后每天可以喝任意杯咖啡(不必按a[i]顺序喝),如果这一天喝了很多杯咖啡的话,第一杯咖啡的咖啡因就是ai,第二杯的咖啡因就是ai-1,第三杯就是ai-2,一个咖啡因可以完成1页的论文,问最少需要几天可以写完这篇论文。二分枚举完成这篇论文的所需天数...
2019-03-21 10:57:26 142
原创 String of CCPC(思维)
https://ac.nowcoder.com/acm/problem/14367题意:给你一个只含’C’、'P’的字符串,如果子串能组成"CCPC",那么Value就会加1,同时你可以在原串任意位置上加"C"、“P”,第i次加会花费i-1的Value。问你最大Value是多少。思路:很显然,通过加C或P最多构成一个"CCPC",而且加第一个是免费的,第二个会花费1,那么只加一个就好了。可以加...
2019-03-12 20:35:50 510
原创 华华教月月做数学(快速幂+快速乘)
https://ac.nowcoder.com/acm/contest/392/B?tdsourcetag=s_pctim_aiomsg#include <bits/stdc++.h>using namespace std;typedef long long ll;ll a,b,Mod; ll Mult(ll a,ll b,ll Mod){ //快速乘 ll re...
2019-03-12 20:20:43 181
原创 51Nod 1057 n的阶乘
http://www.51nod.com/Challenge/Problem.html#!#problemId=1057正常的可以直接通过模拟来求阶乘,用一个数组保存阶乘的每一位。但是当n太大的时候,就不行了。所以这里用每8位进位的方法,就是数组中的每一个数都保存8位数,超过八位数才进位。#include &lt;iostream&gt;#include &lt;cstdio&gt;#...
2019-03-03 17:47:32 178
原创 欧拉降幂
降幂公式:ABmodC = ABmodφ[C]+φ[C]modC(降幂公式中 phi[] 为欧拉函数)// https://ac.nowcoder.com/acm/contest/330/E#include &lt;bits/stdc++.h&gt;using namespace std;const int Mod = 1e9+7;typedef long long ll;char...
2019-03-02 23:04:44 309
原创 不凡的夫夫 斯塔林公式求阶乘位数
https://ac.nowcoder.com/acm/contest/75/A题意:求解 n! 在八进制下的位数。一个整数n的位数的计算方法为:log10(n)+1n=10m故n的位数为 m = log10(n!)+1如12345 = 1.2345*104,那么(int)log10(12345) = 4,再加上1就是这个数的位数。那么对于 n! 的八进制数的位数长度,log8n! ...
2019-03-02 23:01:36 256
原创 D-小a与黄金街道(欧拉函数 +快速幂)
原题链接:传送门题意:给四个数 n,k,A,B。小a会从1走到n-1,小b从n-1走到1。小a当前位置记为x,小b当前位置记为y。当gcd(x,n)==1时,小a的黄金A会变为A * kx,gcd(y,n) == 1 时,小b的黄金B会变为B * ky。问小a走到n-1时,他们手中的黄金数为多少。思路:主要就是求1到n-1中与n互质的数之和——可以用欧拉来求,公式phi[n]*n/2可以直接求...
2019-01-23 17:44:17 191
原创 两种方法求欧拉函数
直接求法:#include <bits/stdc++.h>using namespace std;typedef long long ll;ll Eular(ll n){ ll res = n; for(int i=2;i*i<=n;i++){ if(n%i == 0) res = res/i*(i-1); //先除后乘防止中间数据溢出...
2019-01-23 17:23:50 451
原创 Hello 2019 C. Yuhao and a Parenthesis
原题链接:传送门题意:给你n个字符串,只含有 ( 和 ),将字符串两两配对后,括号完美配对的有多少。思路:先将左右括号能直接配对的消去,然后记录消去后的左括号和右括号的个数,用l[]、r[]两个数组分别来存消去后的字符串中的有mi个( 和 )的个数。最后遍历一下,mi个 ( 肯定能和 mi个 ) 配对,然后取l[] r[] 中较少的就好了,最后还要加上本身就能配对的个数/2。#include...
2019-01-05 18:40:54 264
原创 Hello 2019 B - Petr and a Combination Lock
原题链接:传送门给你n个数,问你经过加或减的操作,最后和是否能整除360。二进制枚举#include <bits/stdc++.h>using namespace std;const int N = 20;int a[N];int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++)...
2019-01-05 16:49:27 323
原创 牛客练习赛34 C.little w and Segment Coverage(差分数组)
原题链接:传送门// #include <bits/stdc++.h>#include <iostream>#include <cstring>#include <cstdio>using namespace std;typedef long long ll;const int N = 1e5+10;int pre[N],a[N];...
2018-12-25 16:44:48 141
原创 中国剩余定理
求解一元线性同余方程组:这里要求mi两两互质。令 M = m1 * m2 * m3 *···* mk,中国剩余定理说明:假设整数m1,m2, … ,mn两两互质,则对任意的整数:a1,a2, … ,an,方程组 (S) 有解,并且通解可以用如下方式构造得到:设 M = m1 * m2 * ···* mn 是整数m1,m2, … ,mn的乘积,并设 Mi = M/mi, 是除了mi以外的n...
2018-12-25 15:16:58 148
原创 POJ - 2409 Let it Bead (Polya计数)
原题链接:传送门/* Polya定理c种颜色染 n个对象方案数 L = 1/n * (∑(c^g)) g是置换gi的循环节数置换分为旋转和翻转两种方式旋转i格时,循环节为 gcd(n,i)翻转时要考虑n的奇偶,n为奇数时:循环节为(n+1)/2 * 循环群 n 个n为偶数时(举正方形):循环群有两类,按边中点 循环节为 n/2 * 循环群 n/2按对角线 循环节数为 ...
2018-12-09 20:30:01 176
原创 POJ - 2478 Farey Sequence (欧拉函数)
原题链接:传送门题意:给你一个函数 F(),F(n) 就是 1-n 之内两个数 gcd(a,b) = 1 的总个数。思路:很显然,是求欧拉函数的。F(n) = F(n-1) + phi[i],直接套欧拉函数模板。// #include &amp;amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;lt;iostream&amp;amp;amp
2018-11-27 21:00:40 161
原创 LightOJ - 1234 Harmonic Number(打表+技巧)
原题链接:传送门题意:求调和级数的部分和。调和级数如下:思路:这个题n的数据范围是1e8,直接开数组存不下,可以降值来存,就是每100个数的调和级数存一下。最后再把剩余的遍历一下就好了,时间复杂度也降下来了。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e8+...
2018-11-27 12:55:39 169
原创 LightOJ - 1220 Mysterious Bacteria(唯一分解定理+思维)
原题链接:传送门题意:输入 t 组数n,每个数n = bp,求 p 的最大值。思路:一开始以为是求 n = b1p1 * b2p2 * b3p3 * … *bnpn 中的最大的p,后来才注意到是 n = bp 中 p 的最大值…可以先用唯一分解定理求出b1,b2,b3…bn,然后求出b1到bn的gcd,就是n = bp了。如12 = 22 * 3,那么12 = 121,gcd(2,1) =...
2018-11-19 18:23:15 163
原创 LightOJ - 1214 Large Division(高精度取模)
原题链接:传送门题意:给你两个数a和b,问你a是否能整除b。(-10200 ≤ a ≤ 10200),b是32位有符号整型。思路:用一个数1234举例,可以写成 ( ( ( ( (1 * 10) + 2) * 10) + 3 ) * 10 ) + 4,而根据(m+n)%Mod = (m%Mod) + (n%Mod) ) % Mod,可以求出b是否可被a整除#include &lt;bit...
2018-11-15 10:41:52 266
原创 几种常用求素数方法
6n+1法 判断素数#include &amp;lt;bits/stdc++.h&amp;gt;using namespace std;bool isprime(int n){ //判断素数 double n_sqrt = double(sqrt(n)); if(n == 1) return false; if(n==2 || n==3) ...
2018-11-14 21:41:31 2066
原创 Educational Codeforces Round 54 (Rated for Div. 2) C - Meme Problem(数学)
原题链接:传送门题意:给你一个数d,问是否存在 a 和 b,使得a + b = d 并且a * b = d,没有输出N,有则输出Y并输出a 和 b 的值.思路:联立两个方程组,得到一个一元二次方程 a2 - ad + d = 0,即 x2 - ax + a = 0.即可求出 a ,b.#include &lt;bits/stdc++.h&gt;typedef long long ll;u...
2018-11-14 20:28:12 182
原创 Educational Codeforces Round 54 (Rated for Div. 2) B.Divisor Subtraction (素数 + 思维)
原题链接:传送门Descriptionoutputstandard outputYou are given an integer number n. The following algorithm is applied to it:1.if n=0, then end algorithm;2.find the smallest prime divisor d of n;3.subtr...
2018-11-14 19:47:16 188
原创 LightOJ - 1259 Goldbach`s Conjecture(素数)
原题链接:传送门DescriptionGoldbach’s conjecture is one of the oldest unsolved problems in number theory and in all of mathematics. It states:Every even integer, greater than 2, can be expressed as the su...
2018-11-08 11:04:20 147
原创 LightOj 1282 Leading and Trailing(快速幂取模 + 对数)
原题链接:传送门DescriptionYou are given two integers: n and k, your task is to find the most significant three digits, and least significant three digits of nk.InputInput starts with an integer T (≤ 10...
2018-11-06 18:17:23 144
原创 HDU--1576 A/B 拓展欧几里得求逆元
原题链接:传送门Description要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。Input数据的第一行是一个T,表示有T组数据。每组数据有两个数n(0 &amp;lt;= n &amp;lt; 9973)和B(1 &amp;lt;= B &amp;lt;= 10^9)。Output对应每组数据输出(A/B)%9973...
2018-10-26 10:03:33 156
原创 拓展欧几里得
#include &amp;amp;amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;amp;amp;amp;lt;cstring&amp;amp;amp;amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;amp;amp;amp;lt;cstdio&a
2018-10-25 20:27:15 145
原创 BZOJ 1878: [SDOI2009]HH的项链
原题链接:传送门DescriptionHH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此他的项链变得越来越长。有一天,他突然提出了一 个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答。。。因为项链实在是太长了。于是,他只 好求助睿智的你,来解决这个问...
2018-07-24 15:41:36 97
原创 BZOJ 2038: [2009国家集训队]小Z的袜子(hose) (莫队算法)
原题链接:传送门Input输入文件第一行包含两个正整数N和M。N为袜子的数量,M为小Z所提的询问的数量。接下来一行包含N个正整数Ci,其中Ci表示第i只袜子的颜色,相同的颜色用相同的数字表示。再接下来M行,每行两个正整数L,R表示一个询问。Out包含M行,对于每个询问在一行中输出分数A/B表示从该询问的区间[L,R]中随机抽出两只袜子颜色相同的概率。若该概率为0则输...
2018-07-23 17:02:09 195
原创 BZOJ 4562: [Haoi2016]食物链 (记忆化搜索)
原题链接:传送门题意:给n个物种和m条能量流动关系,求其中的食物链条数。单独的一种孤立生物不算一条食物链。#include <iostream>#include <cstring>#include <cstdio>#include <vector>using namespace std;const int N = 1e5+1...
2018-07-20 18:07:35 209
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人