水
BSOD_aura
这个作者很懒,什么都没留下…
展开
-
BZOJ 1207 DP
打一次鼹鼠必定是从以前的某一次打鼹鼠转移过来的 以打每个鼹鼠时的最优解为DP方程#include#include#include#define N 10005using namespace std;int n,m,ans;int f[N],t[N],x[N],y[N],mx[N];int main(){ scanf("%d%d",&n,&m); fo原创 2014-10-22 09:29:07 · 836 阅读 · 0 评论 -
HDU 5012 BFS水
2014 ACM/ICPC Asia Regional Xi'an Online对于一个筛子,规定了以底面的四个边为轴,可以进行翻转,给出起始状态,求最少步骤到目标状态。简单BFS#include "stdio.h"#include "string.h"#include "math.h"#include "queue"using namespace std;原创 2014-09-16 11:44:48 · 837 阅读 · 0 评论 -
HDU 5025 水爆搜
2014 ACM/ICPC Asia Regional Guangzhou Online水爆搜N*N矩阵,找最长的一条路径,使‘.’最多,路径可以且最多可以转一次90°。枚举每个点,枚举8方向连续的‘.’有多少个,再枚举路径方式。#include "stdio.h"#include "string.h"int main(){ int n,ans,i,原创 2014-09-23 16:19:10 · 769 阅读 · 0 评论 -
HDU 5038 水
用给出的公式求出每个蘑菇的grade,求出现次数最多的grade。如果有多个grade出现的次数一样多,且还有其他的grade,则把这些出现次数最多的grade按升序输出;否则,输出“Bad Mushroom”。注意当方案数只有一种的时候直接输出这个方案。程序乱搞。。。 用很难看的姿势A掉了。。。#include "stdio.h"#include "string.h"int原创 2014-09-22 17:32:24 · 1127 阅读 · 0 评论 -
POJ 1458 LCS模板
LCS模板 存一个#include "stdio.h"#include "string.h"int main(){ char a[1010],b[1010]; int i,j,Max,dp[1010]; while (scanf("%s",a)!=EOF) { scanf("%s",b); memset(dp,0,s原创 2014-08-11 15:16:00 · 684 阅读 · 0 评论 -
ZOJ 3710 水暴力
直接模拟暴力一遍就行了为什么不会超时 -_-##include "stdio.h"#include "string.h"#include "math.h"#include "stdlib.h"int main(){ int t,n,m,k,x,y,ans,sum,i,j,l,flag; int map[101][101]; scanf("%d",&t)原创 2013-11-20 13:04:53 · 1446 阅读 · 0 评论 -
HDU 4927 大数
题意很简单:对于长度为n的数,做n-1遍,生成的新数列: b1=a2-a1 b2=a3-a2 b3=a4-a3c1=b2-b1 c2=b3-b2ans=c2-c1最后推出公式: 为n所在行的杨辉三角对于样例:31 2 3ans=1*1-2*2+1*3=041 5 7 2ans=-1*1+3*5-3*7+1*2=-5求杨辉三角每个数的时原创 2014-08-07 16:39:07 · 1130 阅读 · 1 评论 -
HDU 4920 水
矩阵乘法因为答案要MOD3,所以矩阵中会有很多值为0,对这些不乘就行了,,,,,,,这样也能水过。。。BUT :这样写会超时: for (int i=1; i<=n; i++) for (int j=1; j<=n; j++) for (int k=1; k<=n; k++)原创 2014-08-06 14:21:04 · 806 阅读 · 0 评论 -
HDU 4911 水
对于n个数,可以做k次移动,每次移动可以互换相邻位置的两个数,问最少 number of pair (i,j) where 1≤ii>aj.如果不移动的话,ans=’n个数的逆序对数‘,移动k次会减少k个归并排序求逆序对数:#include "stdio.h"#include "string.h"#include "math.h"int b[100010],a[1原创 2014-08-06 13:37:52 · 793 阅读 · 0 评论 -
HDU 4915 水
’?‘可以任意改变成‘(’ 或者‘)’,问序列有可行解,可行解是否唯一首先先判断是否有解判断是否为Many,记录每个位置的左边和右边各需要多少个‘(’或‘)’左边所需‘(’若正好等于 (i+1)/2,说明若有解则只有唯一解,右边所需‘)若正好等于(len-i)/2,说明若有解则只有唯一解,若均有多解,判断是否相互包含对方例:((()))变为 (()());原创 2014-08-06 13:18:54 · 1058 阅读 · 1 评论 -
POJ 2029 DP || 暴力
在大矩形中找一个小矩形使小矩形包含的*最多暴力或者DP 水题暴力:#include "stdio.h"#include "string.h"int main(){ int n,m,w,i,s,t,j,k,l,ans,sum,x,y; int map[101][101]; while (scanf("%d",&w)!=EOF)原创 2014-07-30 14:57:53 · 747 阅读 · 0 评论 -
POJ 2342 树形DP入门题
有一个大学的庆典晚会,想邀请一些在大学任职的人来参加,每个人有自己的搞笑值,但是现在遇到一个问题就是如果两个人之间有直接的上下级关系,那么他们中只能有一个来参加,求请来一部分人之后,搞笑值的最大是多少。树形DP入门题。DP部分:dp[i][0]表示职员i不来参加party,以i为根的子树的最大搞笑值,dp[i][1]表示职员i来参加party,以i为根的子树的最大搞笑值。转原创 2014-08-04 11:05:24 · 852 阅读 · 0 评论 -
POJ 1008水
水一道-_-##include "stdio.h"#include "string.h"int main(){ int a,b,c,n,sum; char str[11]; scanf("%d",&n); printf("%d\n",n); while (n--) { scanf("%d.%s%d",&a,str,&原创 2014-07-28 17:24:36 · 500 阅读 · 0 评论 -
HDU 4902 线段树||暴力
给定一个序列,两种操作1:把一段变成x。2:把一段每个数字,如果他大于x,就变成他和x的gcd,求变换完后,最后的序列。线段树解法:用lazy标记下即可,优化方法还是很巧妙的,Accepted4902515MS3308K1941 BC++#include "stdio.h"#include "string原创 2014-08-02 20:25:34 · 817 阅读 · 0 评论 -
POJ 2533 LIS模板
n*log(n) 模板#include "stdio.h"#include "string.h"#include "math.h"int sum;int a[1010],dp[1010];void updata(int x){ int l,r,mid; l=1;r=sum; while (l<=r) { mid=(l+r)原创 2014-07-25 14:01:21 · 478 阅读 · 0 评论 -
POJ 3278 水BFS
水一道。。。#include "stdio.h"#include "string.h"#include "queue"using namespace std;struct node{ int x,step;};int hash[150001];int main(){ int a,b,i; queueq; node cur,next;原创 2014-07-20 14:25:51 · 475 阅读 · 0 评论 -
HDU 4707 水DFS
所有房子组成一颗树,求出离根节点0的距离大于d的节点数目DFS+vector存边 水过#include "stdio.h"#include "string.h"#include "vector"using namespace std;vectormapp[100010];int ans,d;void dfs(int cur,int pre,int op){原创 2014-09-03 20:14:44 · 645 阅读 · 0 评论 -
HDU 3687 暴力
在N*M的矩阵里,分布了,N*N个人,每行N个,且只能左右移动,求把所有人合并成N*N正方形所需的最小代价。因为每个人只能在本行移动,所以预处理出来每行的每种合并方式,再判断列的#include "stdio.h"#include "string.h"#include "iostream"#include "algorithm"using namespace std;原创 2014-10-10 14:01:49 · 890 阅读 · 0 评论 -
HDU 5101 水二分
给定一些集合,选择两个来自不同集合的数,加和大于k,问有多少种选择方案。ans=从所有数中选择的两个加和大于k的数的方案数-在同一个集合中选择的两个加和大于k的数的方案数对所有数据排序后二分找即可#include "stdio.h"#include "string.h"#include "algorithm"using namespace std;struct n原创 2014-11-14 15:12:01 · 795 阅读 · 0 评论 -
BZOJ 1218 枚举水
a[i][j]记录以i,j为右下角的矩形内所有价值和,然后枚举每一个点位置的正方形所能取得的价值#include "stdio.h"#include "string.h"int a[5110][5110];int Max(int a,int b){ if (a<b) return b;else return a;}int main(){ int n,r原创 2014-10-21 20:35:33 · 933 阅读 · 0 评论 -
BZOJ 1012 线段树||单调队列
很裸的线段树 ||单调队列:如果一个节点在队列中既没有时间优势(早点入队)也没有值优势(值更大),那么显然无论在怎样的情况下都不会被选为最大值。 既然它只在末尾选,那么自然可以满足以上的条件。线段树#include "stdio.h"#include "string.h" struct node{ int l,r,Max;}d原创 2014-10-22 10:32:24 · 763 阅读 · 0 评论 -
HDU 4451 水
题目给出 上衣,裤子,鞋子的各种类数,然后给出了不能匹配的关系,求解能匹配的种数。因为只给出cp组合和ps组合,所有对于每个p,开两个数组标记不能与之匹配的c和s#include "stdio.h"#include "string.h"int main(){ __int64 ans,x,y,n,m,k; int p,i,p1[1010],p2[1010];原创 2014-10-20 17:08:41 · 705 阅读 · 0 评论 -
HDU 4442 贪心
给出N个数,和每个数的a,b值贪心思想,按a/b排序放置即可;#include "stdio.h"#include "string.h"#include "algorithm"using namespace std;struct node{ int a,b; double c;}data[100010];__int64 inf=999999999原创 2014-10-20 16:35:59 · 690 阅读 · 0 评论 -
HDU 4771 BFS&状压 水
n*m矩阵,起点@,从矩阵中拿k个物品的最小代价水BFS#include "stdio.h"#include "string.h"#include "queue"using namespace std;int b[]={1,2,4,8,16};int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};struct node{ i原创 2014-11-05 10:44:45 · 864 阅读 · 0 评论 -
hdu 1244 DP
水DP dp[i%2][j]=Max(dp[i%2][j-1],dp[1-i%2][j-l[i]]+sum[j]-sum[j-l[i]]);#include "stdio.h"#include "string.h"int Max(int a,int b){ if (a<b) return b; else return a;}int dp[2][1010原创 2014-11-04 10:39:06 · 945 阅读 · 0 评论 -
HDU 3316 爆搜水题
爆搜水题模拟扫雷,规则和扫雷一样给出原图,求在X,Y位置点一下以后的图形,没有弹出的点输出-1,弹出的点输出这个点的数字从起始点DFS一下即可#include "stdio.h"#include "string.h"int dir[8][2]={ {-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1} };int n;i原创 2014-11-19 13:16:51 · 874 阅读 · 0 评论 -
HDU 4462 DFS
2012 Asia Hangzhou Regional Contest给出N*N的矩阵,全部标记为0,其中有K个点标记为1,并且可以在该位置放置一个可以覆盖曼哈顿距离为r的草人,问最少放置几个草人,可以覆盖所有标记为0的点DFS即可,注意只需要覆盖标记为0的点#include "stdio.h"#include "string.h"int inf=0x3f3f3原创 2014-10-17 09:51:54 · 806 阅读 · 0 评论 -
HDU 5092 DP
DP水题求从上到下走完,使所取得权值最小,并输出路径,若有多个满足,则输出靠右的#include "stdio.h"#include "string.h"int inf=0x3f3f3f3f;struct node{ int x,y;}dp[110][110];int main(){ int Case,ii,i,j,n,m,ans; int原创 2014-11-02 18:47:35 · 1240 阅读 · 0 评论 -
HDU 4431 模拟
2012 Asia Tianjin Regional Contest纯模拟胡麻将十三幺,七对子(对子不能有重复),最普通的胡法给出已有的13张牌,然后问有多少种胡法,输出所需牌枚举所有的牌,对已有的14张牌,先判断十三幺和七对子然后枚举用每一个对子当将,然后胡牌对于c判断是否都为3或者0对于m,s,p每种花色从左到右判断若>=3则-=3,若==1 || ==2原创 2014-11-01 14:56:38 · 975 阅读 · 0 评论 -
HDU 4432 水暴力
2012 Asia Tianjin Regional Contest 水题暴力#include "stdio.h"#include "string.h"#include "math.h"int main(){ int n,m,ans,i,mark; int a[1001]; while (scanf("%d%d",&n,&m)!=EOF) {原创 2014-11-01 13:24:50 · 736 阅读 · 0 评论 -
HDU 4438 水
2012 Asia Tianjin Regional Contest 水题模拟两种情况(Alice先选tiger或者Alice先选wolf)算出来比一下大小就行了。#include "stdio.h"int main(){ int Case; double a,b,p,q,ans1,ans2; scanf("%d",&Case); whi原创 2014-11-01 13:46:11 · 1160 阅读 · 0 评论 -
HDU 1983 BFS&&DFS
最多只需要封锁4个区域即可,DFS封锁的区域,BFS是否可通过#include "stdio.h"#include "string.h"#include "queue"using namespace std;int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};int s_x,s_y,n,m,t;char str[11][11];struct原创 2014-10-31 10:07:30 · 1038 阅读 · 0 评论 -
BZOJ 1088 水模拟
BZOJ水一道~枚举前两个位置是否放雷,模拟向下推,可以则ans++#include "stdio.h"#include "string.h"int a[10010],b[10010],n;int judge(){ int i; for (i=3;i<=n;i++) { b[i]=a[i-1]-b[i-1]-b[i-2];原创 2014-10-14 15:43:21 · 850 阅读 · 0 评论 -
ZOJ 3829 模拟贪心
2014牡丹江现场赛水题给出波兰式,判断其是否合法,如果不合法有两种操作:1:任意位置加一个数字或者操作符2:任意两个位置的元素对调贪心模拟即可先判断数字数是否大于操作符数,若不大于 ans+=sum2-sum1+1;新加入的数字全部放到左端。然后从左到右遍历一遍,存储到当前位置为止,数字数和sum1,和操作数和sum2若sum2>=1sum1,优先与队原创 2014-10-14 14:46:37 · 1059 阅读 · 0 评论 -
POJ 1001 大数
无聊水一道。。各种坑爹原创 2014-05-23 10:05:16 · 465 阅读 · 0 评论 -
HDU 1331 poj 1579记忆化搜索
记忆化搜索 水#include "stdio.h"#include "string.h"int dp[21][21][21];int dfs(int a,int b,int c){ if (dp[a][b][c]) return dp[a][b][c]; if (a<=0 || b<=0 || c<=0) return 1; if (a<b && b<c) return原创 2014-04-23 10:50:30 · 512 阅读 · 0 评论 -
HDU 2159 完全背包模板题
#include "stdio.h"#include "string.h"int max(int a,int b){ if (a<b) return b; else return a;}int main(){ int n,m,k,s,i,j,l,ans; int hash[101][101]; int a[101],b[101]; while (原创 2014-05-20 19:43:24 · 735 阅读 · 0 评论 -
HDU 1242 广搜模板
广搜模板#include "stdio.h"#include "string.h"#include "math.h"#include "queue"using namespace std;struct node{ int x,y,step; friend bool operator<(node n1,node n2) { return n2.step<n1.s原创 2013-12-06 17:36:04 · 739 阅读 · 0 评论 -
HDU 4811 水
水题#include "stdio.h"#include "string.h"#include "stdlib.h"#include "math.h"#include "iostream"#include "algorithm"using namespace std;int main(){ __int64 y,a[10],x,ans; while (scanf("%I原创 2013-12-03 16:24:30 · 1251 阅读 · 0 评论 -
HDU 4791二分+线段树
13长沙现场赛水题二分+线段树二分出页数的所在位置线段树查找后面区间最小值#include "stdio.h"#include "string.h"#include "math.h"#include "stdlib.h"struct comp{ int l,r,mid; __int64 min;} data[400100];__int64原创 2013-11-30 19:14:41 · 713 阅读 · 0 评论