ACM
文章平均质量分 87
online judge & competition
落雨飞辰
no pains no gains
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu5414
题意:给你两个字符串s1和s2然后问你能不能通过操作使s1变成s2,操作是你可以在s1中任意字符c的后面插入一个字符d,但c不能等于d;思路:输出yes的情况:s1和s2的首字母一样并且其连续个数相等并且对于任意字母的个数都要满足s1其他情况就是no了;比赛时读入用scanf超时 后改成getchar过的代码:#include #include #include #i原创 2015-08-21 08:55:14 · 1145 阅读 · 3 评论 -
hdu5386
题意:给你一个n*n的初始矩阵 再给你一个n*n的目标矩阵,然后有两种操作:L X Y表示将第X列全部替换成Y,H X Y表示将第X行全部替换为Y,给你m次操作让你安排顺序使得初始矩阵转换成目标矩阵,输出任意一种可行顺序思路: 题目保证一定有解,又因为操作是整行或整列替换且初始矩阵没有用(会覆盖),所以可以假设为零矩阵,然后从目标矩阵开始通过给的操作使整行或整列变为零,直到目标矩阵变为零矩阵,原创 2015-08-19 16:33:25 · 880 阅读 · 0 评论 -
hdu5384
题意:给你n个母串,m个匹配串,让你求出对于每个母串 所有匹配串出现的次数和。思路:ac自动机模板题,加入一个数组val[i] 表示以i节点结束时匹配了几个匹配串代码:#include #include #include #include #include #include #include #include #include #include #include原创 2015-08-14 11:35:41 · 978 阅读 · 0 评论 -
hdu2222
题意:给你n和匹配串 再给你一个母串 问有多少匹配串是母串的子串邝斌的ac自动机模板代码:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2015-08-15 10:45:50 · 842 阅读 · 0 评论 -
hdu1423 LCIS
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define sss(a,b,c) scanf("%d%d%d",&a,&b,原创 2015-08-03 11:15:31 · 847 阅读 · 0 评论 -
hdu5399
题意:给你m行个长度为 n的序列或者-1 -1代表这一行的序列不确定,然后让你找出有多少种情况满足对于每个i 有f1(f2(⋯fm(i)))=i;思路:分为三种情况:1,每行序列中有重复数输出0;2,存在-1的话一定有解且答案为n的阶乘的(-1的个数-1)次方;3,以上两种都不是的,判断一下可不可以,0 or 1代码:#include #include #include #inc原创 2015-08-20 08:47:44 · 903 阅读 · 0 评论 -
hdu5319 Painter
直接模拟 要非常细心。。。。代码:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define sss(a,b,c)原创 2015-08-01 14:55:40 · 882 阅读 · 0 评论 -
hdu5373
直接模拟#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define sss(a,b,c) scanf("%d%d%d",原创 2015-08-12 15:36:51 · 585 阅读 · 0 评论 -
poj3903 LIS的优化
题意:最长递增子序列思路:二分优化 理解dp数组存的东西是关键 dp数组的值可能会更新代码:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2015-07-28 10:48:28 · 620 阅读 · 0 评论 -
poj2533 最长上升子序列
题意:求最长上升子序列的长度代码:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define sss(a,b,c)原创 2015-07-28 09:50:19 · 556 阅读 · 0 评论 -
poj3254 状态压缩dp
题意:一个n*m的矩阵,每个格子是0或者1,1表示土壤肥沃可以种植草地,0则不可以。在种草地的格子可以放牛,但边相邻的两个格子不允许同时放牛,问总共有多少种放牛的方案(不放牛也算一种情况)思路:状态压缩(感觉不大像dp。。)dp[i][j]表示第i行状态为j时符合条件的方案数我们可以先求出一行的所有可行状态以十进制存到v_status数组中, 然后再排除。接下来输入土地状态的时候需原创 2015-07-27 16:31:23 · 546 阅读 · 0 评论 -
最大流模板(poj3469)
代码:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define sss(a,b,c)原创 2015-07-24 16:51:46 · 540 阅读 · 0 评论 -
hdu5289 2015多校联合第一场1002 Assignment
题意:给出一个数列,问其中存在多少连续子区间,其中子区间的(最大值-最小值)思路:设dp[i]为从区间1到i满足题意条件的解,最终解即为dp[n];此外 假设对于arr[i] 往左遍历 一直到arr[r] 此时从区间r到区间i满足(最大值-最小值),再往左一位即越界 或者 不满足条件,此时有 dp[i]= dp[i-1]+ i - r + 1;因为数据量大 往左遍历时 可能原创 2015-07-24 16:13:13 · 915 阅读 · 0 评论 -
leetcode 5532. 奇偶树
如果一棵二叉树满足下述几个条件,则可以称为奇偶树:二叉树根节点所在层下标为0,根的子节点所在层下标为1,根的孙节点所在层下标为2,依此类推。 偶数下标层上的所有节点的值都是奇整数,从左到右按顺序严格递增 奇数下标层上的所有节点的值都是偶整数,从左到右按顺序严格递减给你二叉树的根节点,如果二叉树为奇偶树,则返回true,否则返回false。思路:层次遍历/** * Definition for a binary tree node. * st...原创 2020-10-04 19:40:28 · 216 阅读 · 0 评论 -
线性表的顺序存储
#include #include #include #include #include #include #include #include #include #include #define N 500010#define INF 10000000#define LL long long#define eps 10E-9#define m原创 2015-07-11 10:35:22 · 885 阅读 · 0 评论 -
单链表的逆序输出及就地逆置
单链表的逆序输出:void R_Print(LinkList L){ if(L->next) R_print(L->next); print(L->data);}单链表的就地逆置:就地逆置即空间复杂度为O(1)解法一:将头结点摘下,然后从第一结点开始,依次前插入到头结点的后面(头插法建立单链表),直到最后一个结点为止LinkList Rev原创 2016-09-23 16:51:11 · 9111 阅读 · 0 评论 -
链表的基本操作(手写、STL)
1 插入2 删除3 输入手写版本:#include<iostream>#include<stdio.h>#include<stdlib.h>#include<math.h>#define LIST_INIT_SIZE 100#define LIST_INCREMENT 10using namespace std;//带头节点版 头插法struct ListNode{ int val; ListNode* n.原创 2020-08-29 10:55:22 · 308 阅读 · 0 评论 -
二叉树的非递归遍历
先序void pre(node t){ stack<node>q; while(!q.empty() || t!=NULL){ if(t!=NULL){ cout<<t.value<<" "; q.push(t); t=t.left; }else{ t=q.top(), q.pop(); t=t.right; } }}中序void mid(node原创 2020-09-09 16:03:28 · 178 阅读 · 0 评论 -
线性表的链式存储
#include #include #include #include #include #include #include #include #include #include #define N 500010#define INF 10000000#define LL long long#define eps 10E-9#define m原创 2015-07-14 17:20:27 · 645 阅读 · 0 评论 -
poj2001 Shortest Prefixes
题意:给你一些字符串 对于每个字符串 求出它们特有的最小前缀 输出格式 字符串 + 最小前缀思路:字典树;代码:#include #include #include #include #include #include #include #include #include #define INF 1000000000000#define N 10原创 2015-05-18 20:51:23 · 650 阅读 · 0 评论 -
hdu1671 trie树
题意:给你n个字符串 如果存在某个字符串是另一个字符串的前缀 输出NO否则输出YES思路:和poj2001很像 代码稍微改改就行, 字典树 如果一个字符串不存在特有前缀,则说明是NO的情况 如果所有字符串都有特有前缀 则是YES的情况注意: 每次注意释放内存 不然会超时代码:#include #include #include #include #include #inc原创 2015-08-04 10:44:59 · 710 阅读 · 0 评论 -
poj2442 堆
题意:给你n*m的矩阵,然后每行取一个元素,组成一个包含n个元素的序列,一共有n^m种序列,让你求出序列和最小的前n个序列的序列和。先介绍下堆的基本操作:int arr[N];make_heap(arr+1,arr+N);//对数组arr建堆,堆里第一个元素为最大值pop_heap(arr+1,arr+N+1);//将第一个元素与最后一和元素交换push_heap(ar原创 2015-04-28 21:19:49 · 700 阅读 · 0 评论 -
poj2443 Set Operation
题意:给你n个集合 集合的大小为每行的第一位数 然后q次询问 :给你两个数a b 如果a b同属一个集合则输出yes 否则no思路:bitset容器 数据最大1000,给每个数开个bitset初始化为零 在第几个集合出现过就在它对应的位置上把0变成1 之后ans即 两个bitset与运算即可代码:#include #include #include原创 2015-04-24 21:14:09 · 618 阅读 · 0 评论 -
poj3070 Fibonacci
题意:求第n项斐波那契数的后四位 即mod10000;分析:题意给了方法,用1 1 1 0矩阵的n次幂,就牵扯到了一个矩阵的快速幂模板。代码:#include #include #include #include #include #include #include #include #include #include #define N 100原创 2015-02-21 10:44:46 · 783 阅读 · 0 评论 -
poj3273--Monthly Expense
题意:看着样例说吧 先给你n,m。接着是n行数据,然后要求你把这n行数据分成m份(同一份数据必须是挨着的),使的各份的和尽量小,输出值最大的那一份。分析:单纯模拟会超时 我用的二分,左边界假设m==n,则ans为所输入数据中最大的那一个。右边界假设m==1,则ans为所输入数据的和。然后不断二分直到两边界重合。代码:#include #include #include #in原创 2015-02-09 08:48:19 · 676 阅读 · 0 评论 -
hdu5334 Virtual Participation 多校联合第四场
题意:给你一个数k,让你输出一个长度为n的数列, 该数列满足 不相等的子序列的个数和为k 关于不相等的定义题中有给出思路:规律题 当k小于十万时,直接输出k个1,如果题目不要求n的范围 这道题可以都是输出k个1.。。。。当k大于十万时首先对于一个1到n的数列 它对应的k值为n*(n+1)/2,然后打表 打到45000 就够了,然后再判断表中离k最近切大于k的数是多少,假设为n,我们想办法原创 2015-07-31 16:22:58 · 809 阅读 · 0 评论 -
poj1026--Cipher
题意:看着样例说吧 给你n个数字a[i](>0&&如果字符串长度小于n,后面补为空格;然后进行交换:之前字符串的位置i对应的 a[i]位置就是交换一次后的字符位置,问交换k次后的字符串; 分析:单纯模拟会超时,这其中有个规律:对于一个字符,交换某些次之后,就会变回原来的(即会循环),只需找出它的循环周期T,交换k%T次就可;#include #include原创 2015-01-28 11:25:20 · 789 阅读 · 0 评论 -
poj1870 Bee Breeding
题意:首先给的图不是很清楚 为了好说明 用下图示范 如图 这是一个蜂窝 1在中间 然后依次旋转扩散开来 (每个数字代表一个小孔) 然后给你两个数字 让你求出这两孔之间的最小距离;分析: 首先建个坐标系(二维的) 把每个孔都坐标化 如图PS:这个横纵坐标轴可以随意 设置接下来求小孔的坐标, 由第一个图我们可以知道第一个小孔周围是6个孔原创 2015-02-23 21:01:42 · 631 阅读 · 0 评论 -
poj2031--Building a Space Station
题意:给你n个球 坐标 半径。球若相互覆盖或接触就算相连 让你求出最小的长度使得从任意一球出发能到达任意球;思路:最小生成树 代码用g++交WA 用c++就A 无语。。。#include #include #include #include #include #include #include #include #define N 110 #def原创 2015-01-27 16:36:00 · 678 阅读 · 0 评论 -
poj1509 字符串最小表示法
Glass BeadsTime Limit: 3000MS Memory Limit: 10000KTotal Submissions: 2708 Accepted: 1573DescriptionOnce upon a time there was a famous actress. As you may expect,原创 2014-11-26 12:21:31 · 952 阅读 · 0 评论 -
hdu5442
题意:有一个len长度的环,求某一位置pos,以该点为头,其字典序最大(正逆顺序都行)。如果有且只有一个 ,输出其 开头的下标, 下标从1 开始, 再输出0 表示顺时针 1表示逆时针如果有多个(包括在正序与逆序),输出 开头下标最小的那个。另外,就是顺时针 逆时针 一样且下标相等的情况 算成顺时针的。思路:字符串的最大表示法 + kmp,kmp针对逆序的 因为跑完最大表原创 2015-09-18 18:01:12 · 604 阅读 · 0 评论 -
hdu5371
题意:找三个连续子序列a b c,满足a b对称且b c对称思路:先求出序列中以每个位置为中心的回文串长度存在p[i]数组里,用manacher算法,O(n)的时间,然后遍历p数组,如果在当前位置的回文串范围内,与之后的位置上的回文串范围能覆盖彼此任意一个的至少一半,就说明满足条件,依此找出最优解还在wa的同学可以试试我代码下面的数据代码:#include #include #原创 2015-08-12 10:50:19 · 949 阅读 · 0 评论 -
poj3252--Round Numbers
Round NumbersTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 9565 Accepted: 3433DescriptionThe cows, as you know, have no fingers or thumbs and thus are原创 2015-01-26 14:17:03 · 676 阅读 · 0 评论 -
poj3904 容斥原理
Sky CodeTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 1537 Accepted: 467DescriptionStancu likes space travels but he is a poor software developer an原创 2014-11-28 10:06:28 · 646 阅读 · 0 评论 -
poj3370 鸽笼原理
题意:首先输入c n,接着是n个数,问你有没有k个数(1 输出其对应下标,只输出一组符合条件的就行;分析:http://blog.youkuaiyun.com/bigsungod/article/details/41450729代码:#include #include #include #include #include #include #in原创 2014-11-24 21:11:20 · 901 阅读 · 0 评论 -
卡特兰数 大数模板
#include #include #include #include #include #include #include #include #include #include#define N 500010#define INF 10000000#define LL long long#define eps 10E-9#define me原创 2015-06-04 17:29:33 · 908 阅读 · 0 评论 -
hdu1018 Big Number stirling公式
Stirling公式:n!与sqrt(2πn) * n^n * e^(-n)的值十分接近所以log10(n!) = log(n!) / log(10) = ( n*log(n) - n + 0.5*log(2*π*n))/log(n);代码:#include #include #include #include #include #include #include #in原创 2015-08-05 14:42:48 · 521 阅读 · 0 评论 -
poj 2356 暴力或者组合数学
Find a multipleTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 6281 Accepted: 2740 Special JudgeDescriptionThe input contains N natural (i.e. positi原创 2014-11-24 19:59:24 · 1456 阅读 · 0 评论 -
hdu5392
求循环节加上线性求lcm 即lcm等于公共的质因子乘每个数本身的质因子。代码:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2015-08-19 15:18:58 · 1092 阅读 · 0 评论 -
poj 2891(中国剩余定理)
Strange Way to Express IntegersTime Limit: 1000MS Memory Limit: 131072KTotal Submissions: 10524 Accepted: 3194DescriptionElina is reading a book written by Ruji原创 2014-11-14 11:08:15 · 1427 阅读 · 0 评论
分享