随笔分类 - 水题
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4431不能说是水题了,具体实现还是很恶心的...几乎优化到哭但是DFS(还加了几个剪枝)还是不行...搜索一直T到死...贪心构造解就行算是长见识了首先还是要枚举所有34张牌...然后再枚举将牌(2个的)...之后就是判断这副牌有没有胡牌了...肯定是要特判国士无双和七对的...再就是平胡的情况平胡只要对每张牌优先刻子,再直接贪心向下构造顺子就行了....../********************* Template ***********************/#include #include #i
阅读全文
摘要:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4378写了这么长不容易纪念一下/********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #in
阅读全文
摘要:其实就是一个指定字符串的交换位置...还挺恶心的..写了很长不容易就贴一下吧...各种拆分字符串,合并字符串...还有处理大小写...应该没什么trick/********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc
阅读全文
摘要:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3148虽然是水题,需要用到优先队列...但还是考一点思维题意是找出n*n的矩阵中,每行中取一个数求sum的前k小值...可以很容易想到是求两行中的前k小然后合并...但是求两行中前k小却卡了很久...一开始暴力把两行n^2和全部加到优先队列...直接T了...想一想O(n^3logn)确实有点过分...实际上优先队列中只需要维护k个值就可以了...假设两个有序数列分别为A,B ..
阅读全文
摘要:因为保证只有一个数为奇数,所以所有区间内满足的数的总数一定是奇数且包含这个数的所有区间内 能满足条件的数的个数和也一定是奇数那么二分这个数...在所有的区间内查找满足的条件...代码不到20行/********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #in
阅读全文
摘要:叉姐初级魔法训练赛A题1000个集合,每个集合有10000个数每个数不大于10000...200000个询问是否存在i,j属于同一个set集合很少...我们就暴力一下就行了...暴力开10000*1000的bool数组存 数字i在j集合中是否出现...每次O(n).../********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4731就做了两道...也就这题还能发博客了...虽然也是水题先暴力DFS打表找规律...发现4个一组循环节...尾部特殊判断....然后构造一下...#include #include #include #include #include #include #include using namespace std;int ss;int f(const string& strs) { string s("##"); for(string::const_iterator it = st
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4717显然最大距离是凸函数,三分时间即可/********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
阅读全文
摘要:http://acm.whu.edu.cn/land/problem/detail?problem_id=1470大概是给你一个队列,每次移动队头的数到队尾并减1,如果本身这个数为1就删去.然后ans+=这个数*(队列长度-1),求最小的ans只要最小的元素最先删除就能保证结果最小解法:先对原数列排序然后模拟原操作...但是t[i]太大.显然不能一个个的模拟...其实稍微推一下就能得出每次到达能删除元素的时候整个队列循环了t[i]-1次...我们维护一下后缀和suffix...就能得到这个公式:前面等差数列,后面等差数列O(1)就能求出总共n个数,总共O(n)Notice:等差数列里面/2不能
阅读全文
摘要:维护两个栈,分别存光标前和光标后的数再维护前缀和的栈 和 前缀和最大值的栈注意一下左移,右移,删除到顶了就不操作了5个操作I x : 光标处插入x -----> s1.push(x)D : 光标前删除 -----> s1.pop()L : 光标左移 -----> s2.push(s1.top()) s1.pop()R : 光标右移 -----> s1.push(s2.top()) s2.pop()Q k : 输出前k个数前缀和最大值/********************* Template ************************/#include #inc
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4696由题意可知 1#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define EPS 1e-8#define MAXN ...
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4671水题...构造前两列 ...最傻逼的模拟方法...统计数量后均摊到所有项.../********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #incl
阅读全文
摘要:西山居的复赛第一题83758412013-05-24 23:57:27Accepted455762MS300K2364 BC++CSUST_FoRever当时傻逼了一个结构体的值没赋导致了几次WA...非常无语set的用法真的很强大今天算是完整的学习了一下...只是数据太水了导致题目很水...做法就是low_bound()函数直接返回比查询值大的迭代器 + 重载<运算符...struct person{ char name[50]; int power; int time;}temp;bool operator < (person a,person b){ if(a.p...
阅读全文