------>>ACM<<------
文章平均质量分 79
Xingw-Xiong
明天的你一定会感谢现在拼命努力的自己...
展开
-
ACM输入输出挂模板
输入挂模板原理是将数据一次性全部读入到内存中。namespace IO { const int MT = 5e7; /// 请注意输入数据的大小!!! char _buf[MT]; int _c, _sz; /// 要记得把这一行添加到main函数第一行!!! void begin() { _c = 0; _sz = frea原创 2016-08-22 02:17:12 · 4401 阅读 · 2 评论 -
ACM 常用几何基本数学公式
ACM常用数学公式1. 海伦公式求面积公式描述:公式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。2. 点到直线的距离公式方法一:距离公式直接求 公式描述:公式中的直线方程Ax+By+C=0,点P的坐标为(x0,y0)。但是直线方程不是够直接。推荐使用方法二原创 2016-07-14 00:45:47 · 6063 阅读 · 0 评论 -
[Codeforces #368 div2 Bakery] 水题
[Codeforces #368 div2 Bakery] 水题题目链接:[Codeforces #368 div2 Bakery] 题意描述: 给定N个点M条无向带权边,(1 ≤ n, m ≤ 1e5, 0 ≤ k ≤ n),将N个点分成两个集合A, B,每个集合的元素个数分别为K, N - K。给定集合A的所有元素。 然后从集合A中找一个顶点,从集合B中找一个顶点,使得这两个顶点的距离最原创 2016-08-21 00:54:56 · 726 阅读 · 0 评论 -
[CF# 366 Thor] STL模拟
[CF# 366 Thor] STL模拟题目链接:[CF# 366 Thor] 题意描述:N 种物品标号为1~N, Q次操作:标号为x 的物品增加一个;将标号为x的物品全部删除;将最初加入的前t次物品全部删除。解题思路:想了好久,就是想不到模拟。 竟然一直想着用树状数组求和....直接看官方题解吧....Consider a queue e fo原创 2016-08-09 10:32:36 · 645 阅读 · 0 评论 -
[FZU 2105 Digits Count] 线段树区间的复合操作
[FZU 2105 Digits Count] 线段树区间复合操作题目链接:[FZU 2105 Digits Count] 题意描述:给定N个数。每个数在[0, 15] 范围内。(1 AND opn L, R 表示区间[L, R] 的所有数字与opn 进行与操作OR opn L, R 表示区间[L, R] 的所有数字与opn 进行或操作XOR opn L, R 表示区间[L,原创 2016-08-20 04:35:00 · 627 阅读 · 0 评论 -
BestCoder #86
BestCoder #86今年暑假最后一次BC了,结果B题少加了个判断终测WA了,很不爽......1001 Price List [hdu 5804]签到题求出所有数的和sumsum,如果q > sumq>sum那么肯定记多了。时间复杂度O(n)O(n)。以上是引用官方题解...#include #include #include #incl原创 2016-08-06 23:32:28 · 864 阅读 · 0 评论 -
[POJ 2631/UVA 10308 Roads in the North] DFS求树上的最长路
[POJ 2631/UVA 10308 Roads in the North] DFS求树上的最长路题目链接:[POJ 2631Roads in the North]题意:求树上的最长路。分析:第一次从任意节点为根节点开始DFS每个节点距离根节点的距离,那么距离最大的那个节点就必然是最长路的一个端点;然后再从这个端点为根节点出发,再次DFS其他节点距离该节点的最长距离。 这个最长距离就原创 2016-08-03 10:51:41 · 705 阅读 · 0 评论 -
[SCU 4437 Carries] 二分
[SCU 4437 Carries] 二分题目链接:[SCU 4437 Carries] 题意描述:给定N个 数 N 解题思路:求一个数字与其他多少个数字有进位, 那么是相当简单的。直接排序,然后二分就好了。但是,题意显然不是这个意思。但是,可以从低位向高位统计,也就是说,计算每一位有多少个数字与其他的数字存在进位,将每一位的结果求和就是答案。复杂度O(9*N*log(N))#in原创 2016-08-17 21:28:18 · 771 阅读 · 0 评论 -
[hdu 5833 Zhu and 772002] 高斯消元求异或方程组
[hdu 5833 Zhu and 772002] Zhu and 772002 高斯消元求异或方程组题目链接:[hdu 5833 Zhu and 772002] 题意描述:给定N个数, N解题思路:高斯消元捣鼓了一两天。总算有丝丝收获。完全平方数的每个质因子都是出现偶数次。我们可以很容易的列出一个模二异或方程组。变元可以分别用1,0 表示每个数选或者不选。然后系数a[i][j]原创 2016-08-17 20:46:22 · 653 阅读 · 0 评论 -
[hdu 2068 RPG的错排] 错排公式
[hdu 2068 RPG的错排] 错排公式题目链接:[hdu 2068 RPG的错排] 题意:略。分析:错排公式 F[i] = (i - 1) * (F[i - 1] + F[i - 2]); 然后累加就好了。#include #include #include #include #include #include #include #include #inc原创 2016-08-03 00:11:05 · 701 阅读 · 0 评论 -
[hdu 1796 How many integers can you find]容斥原理模板
hdu 1796 How many integers can you find 容斥原理模板题目链接:hdu 1796 How many integers can you find 题意:给你一个数N,和有一个M个数的集合a1,a2,...,aM。0分析:首先考虑特殊情况,N当M==1,答案就是N / a1。当M==2,答案就是N / a1 + N / a2 - N / l原创 2016-08-02 22:18:06 · 432 阅读 · 0 评论 -
Gym100820G/UVALive7374 Racing Gems 二维LIS 思维题
Gym100820G/UVALive7374 Racing Gems 二维LIS 思维题题目链接: Vjudge题意:赛车在宽为W,高度为H的跑道上捡金币。假设赛车垂直速度为V0,水平速度为V1,有 -V0/R这就是今年的校赛的母题啊!牢骚:神奇的思维。前几天做过了一个二维LIS,今天做这个题目依旧还是没有与二维的LIS联系起来。唉!分析:分析(x0, y0)这个位置上的原创 2016-08-02 19:59:27 · 809 阅读 · 0 评论 -
[CF#365 (Div. 2) Mishka and Interesting sum] 线段树离线处理区间不同数
[CF#365 (Div. 2) Mishka and Interesting sum] 线段树离线处理区间不同数题目链接:[CF#365 (Div. 2) Mishka and Interesting sum]题意描述:给定N个数a1, a2, ..., an , M次查询。每次查询一个区间[l, r] 中出现偶数次的数字的异或和。解题思路: 如果求出现奇数次数字的异或和, 那么原创 2016-08-05 15:12:16 · 748 阅读 · 0 评论 -
[gym101047K Training with Phuket's larvae] 给定N条边求能组成三角形的最小面积
[gym101047K Training with Phuket’s larvae] 给定N条边求能组成三角形的最小面积题目链接:[gym101047K Training with Phuket’s larvae] 题意描述:给定N条边,(N≤2000)(N \le 2000), 从这些边中选出三条边组成面积最小的三角形,最小面积是多少。如果都不能形成三角形,输出-1。 解题思路: 首先,对原创 2016-08-22 22:34:59 · 1289 阅读 · 0 评论 -
CodeForces Gym100935 水题专场
CodeForces Gym100935 比赛链接:CodeForces Gym100935A Time水题~#include #include #include #include #include #include #include #include #include using namespace std;//#pragma comment(lin原创 2016-08-10 13:23:10 · 1569 阅读 · 0 评论 -
[hihocoder #1196 : 高斯消元·二] 高斯消元求异或方程组
[hihocoder #1196 : 高斯消元·二] 高斯消元求异或方程组题目链接:[hihocoder #1196 : 高斯消元·二] 解题思路:首先对于每一个格子的状态,可能会对它造成影响的是其自身和周围4个格子,这五个格子被按下的总次数也就等于该格子所改变的总次数。对于任意一个格子,如果这个格子改变了偶数次状态,则等价于没有发生改变。我们可以将1看作格子亮原创 2016-08-16 19:38:36 · 1271 阅读 · 0 评论 -
[gym 101047C Robotics Competition] 矩阵快速幂求解点旋转平移N次之后的位置
[gym 101047C Robotics Competition] 矩阵快速幂求解点旋转平移N次之后的位置题目链接:[gym 101047C Robotics Competition] 题意描述: 将一个点从原点出发,每次以原点为中心顺时针旋转α度,然后向右平移 ι 个单位长度。这样操作N次,求出N次操作之后的点的坐标。 解题思路: 这是一类关于矩阵快速幂的一个经典应用。 经典题目1原创 2016-08-22 21:51:25 · 3184 阅读 · 0 评论 -
ACM Java BigDemical setScale()保留小数位
[ACM Java BigDemical setScale()保留小数位]以下内容转自【http://www.cnblogs.com/liqforstudy/p/5652517.html】public class test1_format { public static void main(String[] args) { BigDecimal decimal = new Bi转载 2016-11-06 20:16:07 · 1850 阅读 · 0 评论 -
[hihocoder 1181 欧拉路 二] Fleury 算法求欧拉回路
[hihocoder 1181 欧拉路 二] Fleury 算法求欧拉回路题目链接:[hihocoder 1181 欧拉路 二] #include #include #include #include #include #include #include #include #include using namespace std;//#pragma comment(l原创 2016-08-14 01:07:36 · 1084 阅读 · 0 评论 -
[FZU 2142 Center of a Tree] 树形DP
FZU 2142 Center of a Tree [树形DP]题目链接:[FZU 2142 Center of a Tree]题意描述:一个顶点是一棵树的中心 当且仅当 从该点出发到树上其他节点距离最大的值最小, 可以证明中心最多不会超过两个。然后给定一个N个顶点的一棵树, 1 解题思路:首先,求出中心点。求出树上每个点到树上其他节点的最大距离,然后就可以求出中心点。 这里可以用两次原创 2016-08-13 23:31:09 · 485 阅读 · 0 评论 -
[SGU - 149 Computer Network] 树形DP 求带权树上每个节点的最长路长度
[SGU - 149 Computer Network] 树形DP题意链接:[SGU - 149 Computer Network] 题意描述:给定N个顶点的一棵带权树,求树上每个节点的最长路长度。N解题思路:很不错的一道树形DP!对根节点 rt 来一次DFS肯定是可以求出根节点的树上最长路。但是,并不能求出所有的答案。假如树上任意一个节点 u, 求它的一个子节点 v 的树上最原创 2016-08-06 01:22:20 · 1647 阅读 · 0 评论 -
第七次CCF计算机软件能力认证题解
第七次CCF计算机软件能力认证题解今天把上次CCF的题目重新做了一下… CCF链接:cspro.org折点计数问题描述 试题编号: 201604-1 试题名称: 折点计数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销原创 2016-08-20 20:50:15 · 6201 阅读 · 2 评论 -
POJ 2186 Popular Cows Kosaraju求强联通分量
POJ 2186 Popular Cows 强联通分量题目链接: POJ 2186 Popular Cows 题意:给定N个顶点M条边的有向图。边具有传递性。如A到B连通,B到C连通,那么A到C也是连通的。求有多少个顶点满足其他所有顶点到该顶点都连通。思路:先求出强联通分量,缩点,强连通分量内所有的点都是相互连通的,然后所有的缩点构成一个DAG(有向无环图),如果图中要存在顶点满足原创 2016-07-23 13:49:09 · 801 阅读 · 0 评论 -
[hihocoder #1127 : 二分图三·二分图最小点覆盖和最大独立集]
[hihocoder #1127 : 二分图三·二分图最小点覆盖和最大独立集]题目链接:[hihocoder #1127 : 二分图三·二分图最小点覆盖和最大独立集] 题意描述:N个顶点M条边( 2≤N≤1,000,1≤M≤5,000)的无向图,求最小点覆盖数和最大独立集数。 解题思路: 给一个学习链接:《最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配》 三个重要的性质:原创 2016-08-25 00:02:36 · 782 阅读 · 0 评论 -
[hdu 5592 ZYB's Premutation] 树状数组+二分 求第K大数
[hdu 5592 ZYB's Premutation] 树状数组+二分 求第K大数题目链接:[hdu 5592 ZYB's Premutation]题意描述:中文题面解题思路:可以根据前缀逆序对数求出第 i 个数前面有多少个大于 这个数 的个数,以及前面有多少个数小于 这个数 的个数。令B[i] 表示 第 i 个数, 在前面i 个数中排 第几。 显然, 最后一个数 的答案就原创 2016-08-06 14:39:57 · 518 阅读 · 0 评论 -
[SCU - 4520 Euler] 欧拉通路的判定
[SCU - 4520 Euler]欧拉通路的判定题目链接:[SCU - 4520 Euler] 解题思路:无向图存在欧拉回路的充要条件:连通且没有奇度顶点。无向图存在欧拉路径的充要条件:连通且奇度顶点个数为2。有向图存在欧拉路径的充要条件:基图连通且存在某顶点入度比出度大1,另一顶点出度比入度大1,其余顶点入度等于出度。有向图存在欧拉回路的充要条件:基图连通且所有顶点入度等于原创 2016-08-12 02:36:32 · 677 阅读 · 0 评论 -
[Codeforces #368 (Div. 2) Pythagorean Triples] 数学:勾股数
[Codeforces #368 (Div. 2) Pythagorean Triples] 数学:勾股数题目链接: [Codeforces #368 (Div. 2) Pythagorean Triples] 题意描述:给定直角三角形的一条边,求出直角三角形的另外两条边。 解题思路: 这个题目完全就是对数学知识的考察了。 首先,下面从百度百科上抠来的,”勾股数“。 什么是勾股数?:凡是原创 2016-08-21 01:12:21 · 657 阅读 · 0 评论 -
[hdu3333 Turing Tree] 线段树离线 处理区间不同数
[hdu3333 Turing Tree] 线段树离线 处理区间不同数题目链接:[hdu3333 Turing Tree]题意描述:给定N个数 A1, A2, ..., AN。Q次询问。每次询问要你求区间[L, R]中不同数之和。比如:求1 1 2 1 3 这五个数 在区间[1, 5] 中不同数之和, 显然答案是1+2+3 = 6.唠叨一下:这个题目跟昨天晚上在Codeforces原创 2016-08-05 14:39:13 · 728 阅读 · 0 评论 -
hdu 5256 序列变换 LIS 变型 思维转化
hdu 5256 序列变换 LIS 变型题目链接: hdu 5256 序列变换题意:有一个数列A1,A2...An,要求修改数量最少的元素,使得这个数列严格递增。其中无论是修改前还是修改后,每个元素都必须是整数。输出最少需要修改多少个元素。 N(1≤N≤10^5)分析:题目乍一看跟LIS很像,确实是的。只是不过多了个限制,严格递增,a[i]-a[j]>=i-j,i>j,a[i],a[j原创 2016-08-02 01:58:48 · 833 阅读 · 0 评论 -
[hihocoder#1050 : 树中的最长路] 两种树形DP方法求树的最长路
[hihocoder#1050 : 树中的最长路] 两种树形DP方法求树的最长路题目链接:[hihocoder#1050 : 树中的最长路]解题思路:类似博文《 [POJ 2631/UVA 10308 Roads in the North] DFS求树上的最长路》方法一:以树上任意一个节点为根节点出发求出他子树的最长距离,那么距离最大的那个节点就必然是最长路的一个端点。然后以这个端点为原创 2016-08-17 02:54:41 · 1997 阅读 · 0 评论 -
hdu 5475 LCS [循环节]
hdu 5475 LCS [循环节]题目链接:hdu 5475 LCS 题意:给定两个长度为N的 1~N的排列A, B。(1≤n≤10^5) 可以任意交换每一列,即让A[i],B[i] 同时移动。 问能构成的最长公共子序列的长度。分析:找出循环节,然后答案就是 N - 循环节个数。比如,对于样例2给定 的两个排列:1 5 3 2 6 43 6 2 4 5 1原创 2016-08-01 21:14:50 · 587 阅读 · 0 评论 -
51 Nod 1134 最长递增子序列 LIS NlogN 写法
51 Nod 1134 最长递增子序列 LIS NlogN 写法题目链接:51Nod 1134 最长递增子序列 思路:相对N^2的DP 算法, NlogN是对内层循环进行优化。代码中国B数组保存的是A[0]~A[i-1]去重过后的有序的序列。然后通过二分查找进行的优化。#include <cmath>#include <queue>#include <vector>#include <cs原创 2016-07-16 22:46:54 · 784 阅读 · 0 评论 -
51Nod 1007 正整数分组 01背包
51Nod 1007 正整数分组 01背包题目链接:51Nod 1007 正整数分组。 思路:假定2组分别为集合A,集合B,并且集合A的和SUM(A)小于或等于集合B的和SUM(B)。对于每个数组,只有在A集合和不在A集合(或者是在B集合)的情况。然后可以将题目转化为01背包模型:在[SUM(A)+SUM(B)]/2【PS:这里是整数除法】的容量下,所能取得的最大价值,每个物品的价值和体积都是a[原创 2016-07-16 21:48:14 · 753 阅读 · 0 评论 -
UVA 11401 Triangle Counting [递推]
UVA 11401 Triangle Counting [递推]题目链接:VJudge 题意:给定N条边,边长分别为1~N,从这N条边中,选出三条边,问能构成三角形的情况有多少种。 思路:dp[i]表示i条边的情况,dp[i]包含了dp[i-1]与最长边为i这两类情况构成。当最长边为i时,另外两条边范围是[2, i-1],我们假定这两条边为a,b。满足条件1#include <cmath>#i原创 2016-07-16 21:17:00 · 650 阅读 · 0 评论 -
51Nod 1006 最长公共子序列LCS DP水题
题目链接:51 Nod 1006 题意: 求A,B的最长公共子序列并输出。 分析:先求出最长公共子序列的长度,然后再根据最长公共子序列的长度逆序求出最长公共子序列。#include <cmath>#include <queue>#include <vector>#include <cstdio>#include <string>#include <cstring>#include <原创 2016-07-16 17:10:54 · 1270 阅读 · 0 评论 -
CodeForces 691C Exponential notation 模拟
CodeForces 691C Exponential notation 模拟题目链接:CodeForces 691C Exponential notation 模拟题意: 给定一个长度为N的数字,转化为 标准的科学计数法形式。N最大可达1e6。要考虑前置0 和 后置 0 的特殊情况。 当指数为0 的时候,不输出指数部分。纯粹的模拟。分好情况就好了。我分了一下几种情况。输入为x。原创 2016-07-15 21:35:22 · 1092 阅读 · 0 评论 -
51Nod 1174 求区间最大的数 RMQ
51Nod 1174 求区间最大的数 RMQ题目链接:51Nod 1174在很多情况下, 我们求区间最大最小值都是用朴素的遍历算法,其复杂度是O(N), 当存在多次区间最大最小查询时,若查询次数为Q, 那么算法负责度就是O(Q*N) 。 当查询次数 Q 很大时,我们就需要对算法进行优化了。常见的优化方法有: 使用树状数组或者线段树,或者是使用专门的RMQ算法。RMQ是一种专门用原创 2016-07-15 18:21:19 · 1012 阅读 · 0 评论 -
codeforces 350B Resort 链表
Codeforces 350B Resort题目链接:VJudge CodeForces题意: 这个题目关键还是读题。给定的是一个有向图,图中有N个点,每个点的前驱节点只有一个,但是后继节点可以有多个。在这个给定的有向图中,找一个最长的链,这条链满足:该链上所有的点的出度小于等于1;而且终点必须是在若干给定的点集中。思路:首先将与出度大于1的点有关的所有有向边统统删掉。然后从终原创 2016-07-15 00:37:54 · 721 阅读 · 0 评论 -
51nod 1459迷宫游戏 Dijkstra堆优化
51nod 1459迷宫游戏 Dijkstra堆优化题目链接:51nod 1459迷宫游戏题意:给定源点和终点, 每经过一个点就会得到该点对应的分数, 每走过一条边,就会增加相应的时间,让你求源点到终点的最短时间以及在该最短时间下的最终最大得分。分析: 依旧还是带权单源点最短路。还是用d[i].first表示从源点到i点的路径长度,用d[i].second表示从源点到i点的得原创 2016-07-13 14:43:20 · 809 阅读 · 0 评论 -
Tarjan模板题求割点,桥
UVA - 796 Critical Links Tarjan求割点个数题目链接:Vjudge 题意: 给定N个顶点若干条边, 求割点个数。思路:套用kuangbin大牛的 Tarjan 模板。#include using namespace std;#define FIN freopen("input.txt","r",stdin)#define原创 2016-07-24 00:54:09 · 951 阅读 · 0 评论