P1006:模拟

然而我的同余方程能过样例然而就是WA⊙﹏⊙b

【已查明:扩展欧几里得算法出了很隐蔽的问题】

 int exGcd(int x,int y,int& a,int& b) //ax+by=gcd(x,y)
 {
     ; b=; return x; }
     int res=exGcd(y,x%y,a,b);
     int t=a; a=b; b=t-x/y*b;
     return res;
 }

Correct exGcd Code

 #include <cstdio>
 #include <cstring>
 #include <algorithm>

 inline int code(char x)
 {
     switch(x)
     {
     ;
     ;
     ;
     }
 }

 inline char decode(int x)
 {
     switch(x)
     {
      : return '_';
     : return '.';
     ;
     }
 }

 int K;
 ;
 ;

 char cpt[maxL];

 bool input()
 {
     scanf("%d",&K);
     if(!K) return false;
     return scanf("%s",cpt);
 }

 int exGcd(int x,int y,int& a,int& b) //ax+by=gcd(x,y)
 {
     ; b=; return x; }
     int res=exGcd(y,x%y,a,b);
     int t=a; a=b; b=t-b*x/y;
     return res;
 }

 int mdEq(int a,int b,int m) //ax=b(mod m)
 {
     //let ax+km=b
     int x,k;
     int g=exGcd(a,m,x,k);
     x*=(b/g); x%=m;
     ?x+m:x;
 }

 void solve()
 {
     int l=strlen(cpt);
     ;j<l;j++)
     {
         int i=mdEq(K,j,l);
         putchar(decode((i+code(cpt[i]))%apb));
     }
     putchar('\n');
 }

 int main()
 {
     while(input()) solve();
     ;
 }

Problem:ZOJ P1006 WA

P1008:DFS,迷之TLE*2
 #include <cstdio>
 #include <cstring>
 #include <algorithm>

 ],down[],left[],right[];
 ];
 ];
 int N,Ns;

 bool input()
 {
     scanf("%d",&N); Ns=N*N;
     if(!N) return false;
     ;i<=Ns;i++)
         scanf("%d%d%d%d",up+i,right+i,down+i,left+i);
     return true;
 }

 bool move(int,int);
 bool dfs(int);

 inline bool move(int cur,int i)
 {
     used[i]=true;
     fill[cur]=i;
     )) return true;
     used[i]=false;
     return false;
 }

 bool dfs(int cur)
 {
     ) return true;
     bool res=false;
     ;
     ;
     ) st|=;
     ;i<=Ns;i++)
         if(!used[i])
         {
             )
             {
                 res=move(cur,i);
                 if(res) return true;
             }
             )
             {
                 int& u=fill[cur-N];
                 if(up[i]==down[u])
                 {
                     res=move(cur,i);
                     if(res) return true;
                 }
             }
             )
             {
                 ];
                 if(left[i]==right[l])
                 {
                     res=move(cur,i);
                     if(res) return true;
                 }
             }
             else
             {
                 int& u=fill[cur-N];
                 ];
                 if(left[i]==right[l] && up[i]==down[u])
                 {
                     res=move(cur,i);
                     if(res) return true;
                 }
             }
         }
     return false;
 }

 int main()
 {
     );
     freopen("t.in","r",stdin);
     while(input())
     {
         ++cs;
         ) printf("\n");
         memset(used,,sizeof(used));
         printf()?"Possible":"Inpossible");
     }
     ;
 }

Problem:ZOJ P1008

P2672:DP+Hash优化转移

然而谁**能告诉我为啥会TLE!!( >﹏<。)

 #include <cstdio>
 #include <cstring>
 #include <algorithm>

 #include <list>

 struct Hash
 {
     int val;
     int pos;

     Hash(int v,int p):val(v),pos(p) {}
 };

 ;
 ;

 std::list<Hash> hash[dv+];

 typedef std::list<Hash>::iterator Iter;
 Iter x;

 int N;
 int arr[maxN];
 short dp[maxN][maxN];

 inline void insertHash(int v,int p)
 {
     hash[v&dv].push_back(Hash(v,p));
 }

 inline int findHash(int v,int p)
 {
     int res=maxN;
     for(x=hash[v&dv].begin();x!=hash[v&dv].end();++x)
         if(x->val == v && x->pos > p && x->pos < res)
             res=x->pos;
      : res ;
 }

 void init()
 {
     ;i<=dv;i++) hash[i].clear();
     ;i<=N;i++) insertHash(arr[i],i);
 }

 bool input()
 {
     if(scanf("%d",&N)==EOF) return false;
     ;i<=N;i++) scanf("%d",arr+i);
     return true;
 }

 void __solve()
 {
     init();
     ;
     int s,t;

     ;i<N;i++) dp[i][N]=;
     ;j>;j--)
         ;i;i--)
         {
             int f=findHash(arr[j]+arr[i],j);
             ) dp[i][j]=;
             ) > ans)
             {
                 ans=dp[i][j];
                 s=i; t=j;
             }
         }

     printf("%d\n%d %d ",ans,arr[s],arr[t]);
     int f;
     )
     {
         printf("%d ",arr[f]);
         s=t; t=f;
     }
     printf("\n\n");
 }

 void solve()
 {
     ) printf(]);
     ) printf(],arr[]);
     else __solve();
 }

 #include <ctime>

 int main()
 {
     while(input()) solve();
     ;
 }

Problem:ZOJ P2672 TLE

P3300:迷之WA

 #include <cstdio>
 #include <cstring>
 #include <algorithm>

 ];

 bool input()
 {
     int v;
     if(scanf("%d",&v)==EOF) return false;
     memset(cnt,,sizeof(cnt));
     ++cnt[v];
     ;i<=;i++)
     {
         scanf("%d",&v);
         ++cnt[v];
     }
     return true;
 }

 bool dfs(int eye)
 {
     bool res=true;
     ;i<=;i++) if(cnt[i]) { res=false; break; }
     if(res) return true;
     ;i<=;i++)
         ] && cnt[i+])
         {
             --cnt[i]; --cnt[i+]; --cnt[i+];
             res|=dfs(eye);
             if(res) return true;
             ++cnt[i]; ++cnt[i+]; ++cnt[i+];
         }
     ;i<=;i++)
         )
         {
             cnt[i]-=;
             res|=dfs(eye);
             if(res) return true;
             cnt[i]+=;
         }
     if(!eye) {
         ;i<=;i++)
         )
         {
             cnt[i]-=;
             res|=dfs(eye+);
             if(res) return true;
             cnt[i]+=;
         }
     }
     return res;
 }

 void solve()
 {
     ;
     ;i<=;i++)
     {
         ) ++cnt[i];
         else continue;
         ))
         {
             if(ok++) printf(" %d",i);
             else printf("%d",i);
         }
         --cnt[i];
     }
     printf("\n");
 }

 int main()
 {
     while(input()) solve();
     ;
 }

Problem:ZOJ P3300 WA

ZOJ 刷题记录 小黑屋 (`・д・´)的更多相关文章

  1. ZOJ 刷题记录 (。・ω・)ノ゙(Progress:31/50)

    [热烈庆祝ZOJ回归] P1002:简单的DFS #include <cstdio> #include <cstring> #include <algorithm> ...

  2. PE刷题记录

    PE刷题记录 PE60 / 20%dif 这道题比较坑爹. 所有可以相连的素数可以构成一张图,建出这张图,在其中找它的大小为5的团.注意上界的估算,大概在1W以内.1W内有1229个素数,处理出这些素 ...

  3. leetcode刷题记录--js

    leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...

  4. Leetcode刷题记录(python3)

    Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...

  5. 刷题记录:[HarekazeCTF2019]encode_and_encode

    目录 刷题记录:[HarekazeCTF2019]encode_and_encode 一.知识点 JSON转义字符绕过 php伪协议 刷题记录:[HarekazeCTF2019]encode_and_ ...

  6. 刷题记录:[De1CTF 2019]Giftbox && Comment

    目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...

  7. 刷题记录:[强网杯 2019]Upload

    目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...

  8. 刷题记录:[XNUCA2019Qualifier]EasyPHP

    目录 刷题记录:[XNUCA2019Qualifier]EasyPHP 解法一 1.error_log结合log_errors自定义错误日志 2.include_path设置包含路径 3.php_va ...

  9. 刷题记录:[DDCTF 2019]homebrew event loop

    目录 刷题记录:[DDCTF 2019]homebrew event loop 知识点 1.逻辑漏洞 2.flask session解密 总结 刷题记录:[DDCTF 2019]homebrew ev ...

随机推荐

  1. HDU-4405 Aeroplane chess

    http://acm.hdu.edu.cn/showproblem.php?pid=4405 看了一下这个博客http://kicd.blog.163.com/blog/static/12696191 ...

  2. Dev控件用法 aspxTreeList 无刷新 aspxGridView 数据

    主要是利用 ASPxTreeList 点击事件回发服务器进行数据重新绑定 ASPxTreeList: <SettingsBehavior ExpandCollapseAction="N ...

  3. 数据库连接&数据库进程&数据库操作

    root@webwall:/home/xiachengjiao# vi/webwall/mysql/my.cnf(看配置文件中的参数) root@webwall:/webwall/mysql/bin# ...

  4. How to disable Eclipse splash

    Run eclipse with the -nosplash option.

  5. Sicily1153-马的周游问题:启发式搜索

    代码地址: https://github.com/laiy/Datastructure-Algorithm/blob/master/sicily/1153.c 题目如下: 1153. 马的周游问题 C ...

  6. [Java] HashMap 导致的高 CPU 使用率

    今天在生产环境遇到一个问题,Java 应用程序的 cpu 使用比例很高,导致整台机器的 cpu 使用率高达 90% ,正常情况下是 20% 左右. 把 Thread dump 导出来,利用 IBM T ...

  7. 由链表初始化看C语言的二级指针

    先来看C语言创建链表.插入节点和遍历链表的一段代码: #include <stdio.h> #include <stdlib.h> typedef int ElemType; ...

  8. 手把手教你mysql(十)索引

    手把手教你mysql(十)索引 一:索引的引入 索引定义:索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度. 类似于图书的目录,方便快速定位,寻找指定的内容,如一本1000页的 ...

  9. Nginx系列~负载均衡服务器与WWW服务器的实现

    上两讲主要是关于Nginx的环境的介绍,没有涉及到真正环境的开发,这次我们以一个实现的例子,来说明一下负载均衡服务器与WWW服务器的Nginx是如何配置的,并最终如何实现的. 如下是一个实际场景,一台 ...

  10. 关于封装unity3d的dll时候的进一步总结

    在进行新项目的开发或者接手.后期维护其他一些项目时,经常性的,我们会遇到以下情况: 1.使用新的插件替换已有的bug比较多或者不在维护的插件: 2.因策划需求或美术资源的变更,而不得不更换游戏中的游戏 ...