关闭

[置顶] NOIP实用技巧,让你的程序超乎寻常的快

/* U{uJUjujuJjY[>vJjJjYv>[{jYuJuJJ<<[JJjY[>v>vv[v[?[LjYJ{vi^>Y[{JYJYj{JLJYuJJ{JYJ{YJu[ J>[{v[v{?[><vUL<<?riYJ[>v><r><^v>v2j^^qPviiuqUrr><>>v?[>v>[>[?v>...
阅读(123) 评论(0)

[置顶] (黑科技)如何让你的BLOG访问量增加

适应于各大网站的BLOG 材料:火狐浏览器 x 1 打开你的BLOG文章编辑器 写一篇名为“(黑科技)如何让你的BLOG访问量增加的”BLOG即可 恭喜你访问量+1...
阅读(94) 评论(0)

[置顶] 2017SDOI游记

作为一个蒟蒻,去见了见世面,没有一个题想到了正解,全都是暴力过样例啦2333 最后骗了30回来了 蒟蒻写游记就这么点23333...
阅读(391) 评论(0)

[置顶] 自我介绍

这里是自己的blog地址 QAQ 希望大家来看一下我这只蒟蒻 首先%一发我的大佬师哥 友链1 我是齐河一中的弱鸡一只 在此定居 欢迎来借鉴交流 233333333 各大网站ID:半仙胡小桃(中二!),ht008...
阅读(312) 评论(0)

P1351 联合权值

23333 处理一个点的所以邻接点的和以及这些点的最大值和次大值 然后枚举点 枚举临接点的处理出来的和,乘起来,然后找最大值和次大值,看看那个不是原来的点,乘上就行了233#include #include #include #include #include #define ll long l...
阅读(1) 评论(0)

P1967 货车运输(Tarjan做法)

传送门 这个问题叫做『最大瓶颈路径』 最大瓶颈路径一定存在于最大生成树中/反证法:如果最大瓶颈路径不存在与最大生成树中。 这些不在最大生成树中的边会和最大生成树形成环。 我们删掉环上最小的边,保留这一条边,会得到一棵新的更大的生成树。 这与原来那棵树是最大生成树矛盾了。 注意,最短路不一定在最小生成树上(如一个环的情况)现在问题转变为求树上两点的最小边权问题了。 很明显是从u->LC...
阅读(11) 评论(0)

P1966 火柴排队

肯定是大的跟大的搞,小的跟小的搞。 把第一个序列的位置记下来,第二个也记下来。 然后排序,把第一个数组中的位置映射到第二个里去,然后就求逆序对就行了。#include #include #include #define ll long long using namespace std; struct node{ int va...
阅读(24) 评论(0)

商务旅行

传送门 SPFA超时妥妥的! N-1条边,树上找最短路,八成是LCA 用经过的点两两建立要查询的LCA,边权设为1. 就可以转化为小机房的树那个题目233#include #include using namespace std; const int maxm=501000; struct node{ int net; int to;...
阅读(18) 评论(0)

小机房的树

你猜这是啥 裸的LCA 以dis数组为从根到当前节点的总距离 u,v的最小距离即为 dis[u]+dis[v]-2*dis[LCA(u,v)] 至于LCA的实现方法是Tarjan,不会的可以看我上篇BLOG!#include #include using namespace std; const int maxm=501000; struct nod...
阅读(27) 评论(0)

Tarjan求LCA

我对Tarjan越来越崇拜了! 首先是最近公共祖先的概念(什么是最近公共祖先?):在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。换句话说,就是两个点在这棵树上距离最近的公共祖先节点。所以LCA主要是用来处理当两个点仅有唯一一条确定的最短路径时的路径。有人可能会问:那他本身或者其父亲节点是否可以作为祖先节点呢?答案是肯定的,很...
阅读(17) 评论(0)

洛谷10月月赛R1·浴谷八连测R1·提高组 T3

传送门 这题真的费劲! 我们用二进制来表示场上的剩下的黑棋子有哪些。 由于黑骑士我们吃不掉,国王吃了就GG。 所以最多的状态是有2^13个。 用s来表示状态 mp[s][x][y]来表示s状态下x,y是否被攻击到了 vis[s][x][y]来表示s状态下x,y是否走过了。 把所有的mp[s][x][y]预处理出来(要不你吃了棋子再还原太麻烦了啊) 然后用BFS转移就行啦!#incl...
阅读(39) 评论(0)

洛谷10月月赛R1·浴谷八连测R1·提高组 T2

传送门! 最简单的暴力:输出N(20)! 正解DP: 60DP: dp[i][j]为选第i行到第j位置最长的符合要求的序列长度。 我们把第三个序列选上升的定义为dp[3][j] 下降的定义为dp[4][j]。 状态转移: 很明显 dp[1][j]=max(dp[1][1->(j-1)],dp[2][1->(j-1)],dp[3][1->(j-1)],dp[4][1->(j-1)]...
阅读(34) 评论(0)

洛谷10月月赛R1·浴谷八连测R1·提高组 T1

思路很简单,先对k分解质因数,存入一个数组中去。 然后对于n的阶乘分解那个数组的质因数,除数量,取最小值! 刚开始忘特判tot==0,ans开的不够大!#include #include #define ll long long using namespace std; const int maxm=1e7; ll prime[maxm],cnt; b...
阅读(131) 评论(0)

欧拉函数求和

没错,傻X博主只是吸引你点进来的,我TM不会正解,60暴力送上#include #include using namespace std; const int N=99999999; int phi[N+10],prime[N+10]; int tot; bool mark[N+10]; long long getphi(int n) { phi[1]...
阅读(44) 评论(0)

逆欧拉函数

因为 于是逆推,x=φ(x)*(p1/(p1-1))…(pn/(pn-1)) 搞出10^7以内的质数值,根据上面的式子不断的递归,直到φ(x)==1就找到了相应的x了。 但是测试数据和STD不太对,因为STD当φ(N)==1,不会筛2,,其实是可以晒的。 只要把返回写到后面去就行了。#include #include #include <cstdl...
阅读(40) 评论(0)

求一个很大的数的欧拉函数

本来挺简单的,可是n太大了,用欧拉线性筛都不行啊!这可咋办呢? P为N的质因数 Phi(N)=N*(1-(1-1/p1)) * (1-(1-1/p2))… * (1-(1-1/pn)). 然后呢?这么大的数让我分解个毛线! 分解大的数需要用Pollard-rho整数分解 实现方法:生成两个整数a和b,计算p=gcd(a-b,n),直到p不为1或者a,b出现循环为止,若p=n,则p为质数,否...
阅读(54) 评论(0)

LYK快跑!(run)

LYK快跑!(run) Time Limit:5000ms Memory Limit:64MB题目描述 LYK陷进了一个迷宫!这个迷宫是网格图形状的。LYK一开始在(1,1)位置,出口在(n,m)。而且这个迷宫里有很多怪兽,若第a行第b列有一个怪兽,且此时LYK处于第c行d列,此时这个怪兽对它的威胁程度为|a-c|+|b-d|。 LYK想找到一条路径,使得它能从(1,1)到达(n,m),且...
阅读(36) 评论(0)

巧克力

题目描述 LYK找到了一根巧克力棒,但是这根巧克力棒太长了,LYK无法一口吞进去。 具体地,这根巧克力棒长为n,它想将这根巧克力棒折成n段长为1的巧克力棒,然后慢慢享用。 它打算每次将一根长为k的巧克力棒折成两段长为a和b的巧克力棒,此时若a=b,则LYK觉得它完成了一件非常困难的事,并会得到1点成就感。 LYK想知道一根长度为n的巧克力棒能使它得到最多几点成就感。输入格式(chocolat...
阅读(45) 评论(0)

Program

看程序写结果(program) Time Limit:1000ms Memory Limit:64MB题目描述 LYK最近在准备NOIP2017的初赛,它最不擅长的就是看程序写结果了,因此它拼命地在练习。 这次它拿到这样的一个程序: Pascal: readln(n); for i:=1 to n do read(a[i]); for i:=1 to n do for j:=1...
阅读(45) 评论(0)

NP(分块打表)

对于前80%的数据,若n>=p,ans=0 若n#include #include #define ll long long using namespace std; long long n=1,mod=1e9+7; long long ans=1; void ts(int x) { for(long long i=1;i<=mod;i++)...
阅读(49) 评论(0)

前30暴力枚举,特判无解情况。 再20 L==R,变为解同余方程#include #include #define LL long long using namespace std; long long x,y; long long gcd(long long a,long long b) { if(!b) return a; return...
阅读(100) 评论(0)

【问题描述】 一张长度为的纸带,我们可以从左至右编号为(纸带最左端标号为)。现在有次操作,每次将纸带沿着某个位置进行折叠,问所有操作之后纸带的长度是多少。 【输入格式】 第一行两个数字如题意所述。 接下来一行个整数代表每次折叠的位置。 【输出格式】 一行一个整数代表答案。 【样例输入】 5 2 3 5 【样例输出】 2 【样例解释】 树上有只鸟。 【数据规模与约定】 0...
阅读(32) 评论(0)

Jian

方法1:暴力模拟(n^2),得分35(20个点)#include #include using namespace std; int a[1999999],s[1999999]; int tot1=0,tot2=0; int gcd(int a,int b) { if(!b) return a; return gcd(b,a%b); } voi...
阅读(44) 评论(0)

haha

【问题描述】 栈是一种强大的数据结构,它的一种特殊功能是对数组进行排序。例如,借助一个栈,依次将数组1,3,2按顺序入栈或出栈,可对其从大到小排序: 1入栈;3入栈;3出栈;2入栈;2出栈;1出栈。 在上面这个例子中,出栈序列是3,2,1,因此实现了对数组的排序。 遗憾的是,有些时候,仅仅借助一个栈,不能实现对数组的完全排序。例如给定数组2,1,3,借助一个栈,能获得的字典序最大的出栈序列是...
阅读(35) 评论(0)
252条 共13页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:22327次
    • 积分:2719
    • 等级:
    • 排名:第13500名
    • 原创:251篇
    • 转载:1篇
    • 译文:0篇
    • 评论:6条
    友链