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. BZOJ1617: [Usaco2008 Mar]River Crossing渡河问题

    1617: [Usaco2008 Mar]River Crossing渡河问题 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 654  Solved: 4 ...

  2. [JIT_APP]Activity生命周期相关的7个方法

    先发一张安卓官方文档里面的Activity生命周期图解 下面在对这7个生命周期内相关的方法做一些简单的介绍 OnCreate() 当Activity被创建的时候,会自动运行该方法.该方法做一些初始化动 ...

  3. MongoDB基础知识 02

    MongoDB基础知识 02 6 数据类型 6.1 null : 表示空值或者不存在的字段 {"x":null} 6.2 布尔型 : 布尔类型只有两个值true和false {&q ...

  4. hdoj 2473 Junk-Mail Filter【并查集节点的删除】

    Junk-Mail Filter Time Limit: 15000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  5. Sublime Text 2/3如何支持中文GBK编码

    Sublime Text默认是只支持UTF8的编码,所以有些时候,当我们打开GBK文件时候,文件内会出先部分的乱码, 在菜单栏选择"Preferences"-->" ...

  6. div样式调整小结 转载

    1.多个div使用会自动换行,应该使用float属性  left : 对象浮在左边  right : 对象浮在右边 例如:  float: left  和 float: right 是两个div左右排 ...

  7. 开发期间的GWT设置---加快编译速度

    随着项目功能的完善,GWT模块(Module)越来越多,当要以web模式编译给测试组使用时,编译的总时间越来越多,我的机器编译完8个模块,需要10分钟左右. 抽空研究了一下GWT的编译参数和GWT编译 ...

  8. Android 官方文档:(二)应用清单 —— 2.2 &lt;action&gt;标签

    syntax: <action android:name="string" /> contained in: <intent-filter> descrip ...

  9. leetcode题解||Reverse Integer 问题

    problem: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 ...

  10. android 28 SimpleAdapter

    监听器返回fasle,则事件还会分发给其他监听器. SimpleAdapter是BaseAdapter的子类,对适配器进行了简化,数据的格式是List,List的元素必须是Map, public Si ...