
暑假套题
文章平均质量分 77
BEconfidence
坚持才是胜利之道
展开
-
2011 ACM/ICPC 福州赛区现场赛8.7
A题是哪个象棋的题:B题hdu4122:好像是水过去的,看到题解要用队列,就是简单的枚举加判断条件过去的。C题hdu4123:用到MRQ算法查询区间内的最大最小值G题hdu4127是个填颜色的题:是把所有点分成3部分,已经和00连通的,还有就是下一次需要填的颜色部分,剩下的部分就是填不了的,用IDA算法,分开写几个小程序,填充颜色同一个颜色的程序,当前状况需要改变最原创 2015-08-07 21:09:23 · 761 阅读 · 0 评论 -
dfs减枝回溯! HDU 5113
#includeusing namespace std;int n,m,k;int yy[60];int g[30][30];bool jud(int x,int y,int i){ if(x=n||y=m) return true; if(g[x][y]!=i) return true; return false;}bool Cut(int step){原创 2015-08-31 19:04:49 · 671 阅读 · 0 评论 -
欧拉回路
七桥问题:一 七桥问题的结论:如果一个图是连通(无向图)的,且最多只有两个奇点(奇点数目为0或者2),则一定存在欧拉回路。如果有两个奇点,则必须从其中一个奇点出发,另一个奇点终止;如果奇点不存在,则可以在任意点出发,最终一定会回到该点。(路径不能重复)如果图是有向图,最多只能有两个点的入度不等于出度,而且必须是其中一个点的出度恰好比入度大1(作为起点),另一个点的入度比原创 2015-08-15 20:59:52 · 707 阅读 · 0 评论 -
DP hduHDU 5119
#includeusing namespace std;typedef long long ll;int a[41];ll dp[3][(1<<20)+100];int main(){ int t,kase=1;scanf("%d",&t); while(t--){ memset(dp,0,sizeof(dp)); int n,m;sca原创 2015-08-31 21:34:10 · 719 阅读 · 0 评论 -
uestc893
场上由于没有判断J历2月的29天变成G历的时侯少了一个减一代码能力还是不行!一是刷 二是硬搞#include#include#includeusing namespace std;int mon[]={0,31,28,31,30,31,30,31,31,30,31,30,31};int main(){ int y,m,d; while(~scanf("%原创 2015-09-01 19:41:53 · 475 阅读 · 0 评论 -
UVAlive6935
挺坑的一个题没相除思路来感觉就~比例的确定的也即是每次B的总和与W的总和的比值然后从前往后跑一遍即可代码必须要加紧练,这个题找bug补了一个小时~~~#includeusing namespace std;typedef long long LL;bool k[100100];int a[101000];char s[10];#define p(a) print原创 2015-09-02 19:23:35 · 461 阅读 · 0 评论 -
2013 ACM/ICPC 杭州邀请赛(8.5)
A。dp但是m次数太多,开不出那么大的数组,所以要用算完的值替代新的值,这样来回循环,滚动数组,我用的方法比较麻烦,看到有%2的,也有^1的我写的是每一次从0到n循环一边,能到的话概率相加还有一种思路是当前的概率至与上一次的概率有关,每一次都是dp[i][j] = dp[i-1][ (j-x+n)%n ] + dp[i][ (j+x)%n ]I题就是硬暴,开始想用dfs,发现不对原创 2015-08-05 20:53:17 · 555 阅读 · 0 评论 -
找规律hdu4577
import java.util.*;import java.io.*;import java.math.BigInteger;public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int T=sc.nextInt(); for(int原创 2015-08-06 22:57:26 · 741 阅读 · 0 评论 -
最大二分图hdu5091
今天的B题我是想爆出来的,当时想的不错,但后来发现这样爆行不通前面的*点就不是最优了但是我环视要存起来#includeusing namespace std;int n,m;char S[60][60];int IDd[60][60];int IDd2[60][60];void dfs(int r,int c,int id){// printf("r%d c%原创 2015-08-06 20:20:55 · 776 阅读 · 0 评论 -
CodeChef CHAPD
个人赛的题出不来还是没有想清楚!#includeusing namespace std;typedef long long ll;ll gcd(ll a,ll b){ return b==0?a:gcd(b,a%b);}int main(){ int t; scanf("%d",&t); while(t--){ ll a,b;原创 2015-08-30 15:24:57 · 713 阅读 · 0 评论 -
hdu5001dp
这个题整体两个思路一个是求到不了原创 2015-08-04 09:13:12 · 478 阅读 · 0 评论 -
hdu4124
对着题解敲了一遍,彻底敲晕了,还敲的不对#includeusing namespace std;#define N 50004#define M 100004int n,m,d[N];int p[N],eid;struct Edge{ int u,v,cost,nxt,mlen;}e[M];void init(int n){ for(int i=1;i<=n;i原创 2015-08-07 20:19:10 · 577 阅读 · 0 评论 -
最小生成树+Hdu4786
hdu4786 最小生成树的变形题,求一遍最小,求一遍最大,在从此区间是否含有斐波那契数,别忘了并查集,因为可能不连通。后来想其实不难,场上出不来的原还是对最小生成数不熟练,基础薄弱。!#includeusing namespace std;int par[100100];int rank_[101000];struct edge { int u,v,cost;};原创 2015-08-24 19:54:12 · 777 阅读 · 0 评论 -
强连通分量+poj2186
强连通分量:两个点可以互相连通。算法分解:第一步,正向dfs所有顶点,并后序遍历第二步,将边反向,从最大边dfs,构成强连通分量标号最大的节点属于DAG头部,cmp存一个强连通分量的拓扑序。poj2186解就是拓扑后的最后一个强连通分量#include#include#include#include#include#includeusing namespace原创 2015-08-25 01:03:40 · 687 阅读 · 0 评论 -
哈诺塔题型问题+uva10795+URAL 2029
哈诺塔基本算法:将A上的n-1个借助C移到B,再将第n个盘子移到C,最后将B上的n-1个盘子借助A移到C。得出的规律性结论:把n个盘子从A移到C的次数是2的n次方-1#includeusing namespace std;int cnt=0;int a=1,b=2,c=3;int f(int n,int a,int c,int b){ if(n==1) {原创 2015-08-24 19:55:03 · 1176 阅读 · 0 评论 -
hdu5024
思路要开阔些,或者说要转化一下思路,别太死把每个点当拐点,爆一边就可以,用记忆化搜索也行。都不会超时#includeusing namespace std;int n;#define o ans=max(ans,char C[105][105];int f(int i,int j,int a,int b){ int k=0; while(1){原创 2015-08-14 21:41:02 · 677 阅读 · 0 评论 -
hdu5131
#includeusing namespace std;struct hero{ string second; int first; bool operator < ( const hero &x) const { if(first == x.first) { return second < x.second; } return fir原创 2015-08-03 10:05:11 · 587 阅读 · 0 评论 -
{DP!}ZOJ 2604
这个题的题意给出了很多限制给出的n是开壶的个数并且都是成对出现的dp[i][j]i为n,j为小于等于kdp[i][1]遍都是一种,都是()()()()()()()()()这种形式其次会出现(((())))()()()() ()()()(()()()))()()这种形式总有一个最大深度的把第一个看成特殊的!!!把每一个分成了两种情况(X)Y推dp[i][j]原创 2015-08-29 11:56:54 · 1082 阅读 · 0 评论 -
hdu5003
看仔细题意#includeusing namespace std;bool cmp(int a,int b){ return a>b;}int main(){ int cases; scanf("%d",&cases); while(cases--){ int n,a[500 + 5]; scanf("%d",&n原创 2015-08-04 08:51:57 · 635 阅读 · 0 评论 -
hdu4583
素数的一个题,看了题解也没有软用原创 2015-08-05 21:08:55 · 593 阅读 · 0 评论