`
zhouxiaojie
  • 浏览: 9342 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表

......

    博客分类:
换地址了,不写这个blog......
https://www.spoj.pl/problems/EQ2/ 我的做法在这个网站上能过,但是过不了杭电的,郁闷了很久。 #include<iostream> #include<cstdio> #include<cstring> using namespace std; int a[100],b[100],c[100]; char str[105]; int aa,bb,cc; long long suma,sumb,sumc; long long f[105][2]; int main() {     int i,j,k,t,cas=0,ss,tt; ...

poj 2157 Maze

    博客分类:
  • poj
bfs 
   bfs.    先找小写字母,标记每种小写原来总共的exsit[], 能过搜到的小写字母用f[]标记,搜到一个,就加一,如果搜到的是大写字母,判断f[]>exsit[] 如果是,入队,如果不是,先保存起来,之后每次判断一下,如果满足f[]>exsit[]就入队。如果搜到‘G’结束搜索,得出答案。 #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; char s[25][25]; int f[5],e ...
  错了很久,终于明白了,原来题意理解错了,总以为输入的第一个球一定投入A, 原来第一个投的球不一定是输入的第一个。      用 next_permutation 写的: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int a,b,c[11]; struct array {     int x,y; }s[11]; int main() {     int n,d,i,j;     scanf(&q ...
  个人觉得从一个位置下一个位置是关键,然后用树状数组就简单了。   之前举例子推推导公式时只用一个参数,一直凑不出来,后来用两个参数,一个是这列数中原来的位置,另一个是前一个位置的人跳出后,下一个人的前面和自己一共的人数。我用d表示前一个参数,k表示后一个参数。      这一题还学到反素数,真是很有用的东西。    反素数打表就行,然后线段树+二分, 还有我改得最多的main()函数:   int aa[37]=     {1,2,4,6,12,24,36,48,60,120,180,240,360,720,840,1260,1680,2520,5040,7560,10080,15120 ...

1182食物链

    博客分类:
  • poj
  用并查集,方法模仿POJ2492A Bug's Life, 这题是2*n个数,如果a和b是异性,那么a和b+n,b和a+n是同性,这样在判断a和b是否是同性时可以通过a+n,或b+n来判断。   而1182 这题是类似的方法,如果 b 被 a 吃,那么 a 和 b+n , a+n 和 b+2*n ,b 和 a+2*n 是同类。如果输入有“1 A B”, 如果A,B不同类 或  B 吃 A 则这句话是假的。 #include<cstdio> int pre[150002]; void init(int n) { int i; for(i=0;i<=n*3;i++) ...

zoj 3631Watashi's BG

    博客分类:
  • zoj
主要错在一个地方: 本以为输入的每个数大于M就一定要被排除掉,但是,如果排除掉,在dfsI()里 大于M的数可以不取,而step却可以加一,这种情况漏掉了。 #include<iostream> #include<cstdio> using namespace std; int N,M,Max,k; int a[40]; int flag; void dfs(int step,int sum) {     if(flag)return;     if(sum>M)return;     //if(a[step]>M)return;      if(step ...

poj3678Katu Puzzle

    博客分类:
  • poj
  最近在学2-sat,也就做到了这题。开始建图建错了,用了网上模型才过。   然后我讲讲我对这个模型的理解:   A and B == 0: 建边A->!B, B->!A   A and B == 1: 建边!A->A, !B->B   A or B == 0: 建边A->!A, B->!B   A or B == 1: 建边!A->B, !B->A   A xor B == 0: 建边A->B, B->A, !A->!B, !B->!A   A xor B == 1: 建边!A->B, !B->A, A-&g ...

1129Channel Allocation

    博客分类:
  • poj
按A,B,C……的顺序搜索,让每个字母对应一个数,表示到这个字母时可以用的最少的频道,最后一个字母对应的最少的频道即要求的结果, 比如已经搜完了C,C对应的数是m, 轮到搜索D, D从1-m中选一种频道,如果这个频道和与D相关的字母的频道都不同,再往E搜, 如果不存在这样的频道,则D 用m种外的频道, D 对应的最少频道数即m+1。 #include<iostream> #include<cstring> #include<cstdio> using namespace std; int a[30][30],b[30],n; int small = 1000 ...

2676Sudoku修改

    博客分类:
  • poj
没想到,在写完上一篇博文后,在代码上加了句,提交ac了。 原来是因为当数独有多种答案,我的代码会把所有可能都输出,而题目只要求一种, 所有用gs标记,如果已经输出,就停止。

2676Sudoku

    博客分类:
  • poj
这个题自己写的样例能过,但是提交总是output limit exceed。还没想明白到底哪里错了, 走过路过的帮忙看看哪里出问题? #include<iostream> #include<cstring> #include<cstdio> using namespace std; int a[20][20],n; int hen[10][10],shu[10][10],kuai[10][10]; struct M {     int x,y,k; }s[1300]; int f(int xx,int yy) {     if(xx>=1&&am ...

1029False coin

    博客分类:
  • poj
[color=brown][/color][size=xx-large][/size] 一开始看样例以为假币总是比真币重,假币总在较小的那堆里。 满足一 :某币在小于,或大于中出现的次数与不等关系出现的次数相同,      二:不在有“=”的比较中出现。 则可能是假币。满足一二的只有一个则输出,否则输出0.
Global site tag (gtag.js) - Google Analytics