ZOJ 刷题记录 小黑屋 (`・д・´)
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
#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 刷题记录 小黑屋 (`・д・´)的更多相关文章
- ZOJ 刷题记录 (。・ω・)ノ゙(Progress:31/50)
[热烈庆祝ZOJ回归] P1002:简单的DFS #include <cstdio> #include <cstring> #include <algorithm> ...
- PE刷题记录
PE刷题记录 PE60 / 20%dif 这道题比较坑爹. 所有可以相连的素数可以构成一张图,建出这张图,在其中找它的大小为5的团.注意上界的估算,大概在1W以内.1W内有1229个素数,处理出这些素 ...
- leetcode刷题记录--js
leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...
- Leetcode刷题记录(python3)
Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...
- 刷题记录:[HarekazeCTF2019]encode_and_encode
目录 刷题记录:[HarekazeCTF2019]encode_and_encode 一.知识点 JSON转义字符绕过 php伪协议 刷题记录:[HarekazeCTF2019]encode_and_ ...
- 刷题记录:[De1CTF 2019]Giftbox && Comment
目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...
- 刷题记录:[强网杯 2019]Upload
目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...
- 刷题记录:[XNUCA2019Qualifier]EasyPHP
目录 刷题记录:[XNUCA2019Qualifier]EasyPHP 解法一 1.error_log结合log_errors自定义错误日志 2.include_path设置包含路径 3.php_va ...
- 刷题记录:[DDCTF 2019]homebrew event loop
目录 刷题记录:[DDCTF 2019]homebrew event loop 知识点 1.逻辑漏洞 2.flask session解密 总结 刷题记录:[DDCTF 2019]homebrew ev ...
随机推荐
- 建立HttpsConnection
1建立HttpConnection,这种连接比较简单,但是是不安全的,网上例子比较多,现在主要说说如果建立HttpsConnection,这种连接时通过SSL协议加密,相对更安全,一般使用这种连接传输 ...
- Win32中文件的操作
1 文件的创建或打开 HANDLE CreateFile( LPCTSTR lpFileName, //文件路径和名称 DWORD dwDesiredAccess, //访问方式,最常用的值 ...
- HDOJ 1995 汉诺塔V
Problem Description 用1,2,-,n表示n个盘子,称为1号盘,2号盘,-.号数大盘子就大.经典的汉诺塔问 题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔 ...
- if语句,if...else if语句和switch...case语句的区别和分析
前段时间在工作中遇到了一个关于条件判断语句的问题,在if语句,if else if语句和switch case语句这三者之间分析,使用其中最有效率的一种方法. 所以就将这个问题作为自己第一篇博客的主要 ...
- mac svn命令
转载:Mac下svn command命令 svn help command 获取子命令说明 svn info $URL 查看工作空间信息 svn list 显示当前目录下svn记录文件列表,不访 ...
- 趣味理解ADO.NET对象模型
为了更好地理解ADO.NET的架构模型的各个组成部分,我们可以对ADO.NET中的相关对象进行图示理解,如图所示的是ADO.NET中数据库对象的关系图. 讲究完关系图后,为了加深大家的理解,我们可以用 ...
- js中return、return true、return false的区别
一.返回控制与函数结果, 语法为:return 表达式; 语句结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二.返回控制, 无函数结果,语法为:return; 在大多数情况下,为事件 ...
- redis中各种数据类型对应的jedis操作命令
redis中各种数据类型对应的jedis操作命令 一.常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 ...
- winform Label与DataGridView右对齐 分类: WinForm 2014-05-19 20:51 446人阅读 评论(0) 收藏
实现Label与DataGridView对齐有两种方法,差别不大: 定义: Label名称:lblName DataGridView名称:dgvData 第一种: lblName.Location = ...
- AlertDialog.Builder setCancelable用法
AlertDialog.Builder的setCancelable public AlertDialog.Builder setCancelable (boolean cancelable) Sinc ...