Google APAC 2016 University Graduates Test Round A

网友投稿 270 2022-09-14

Google APAC 2016 University Graduates Test Round A

今天手感还算不错,出了三个题,也有不顺的时候,要不第四题水个小数据或许可以混进前100。总的来说题目很简单,没有什么复杂的东西。

A - Googol String

其实看到k的范围就知道n这么大的范围只是一个幌子,当n到62的时候,位数已经突破10的18次方位了,所以我觉得两个思路来做,第一个先打表,然后download数据后跑结果,第二个就是我用的在线递归,注意到Sn的长度总是2的n次方-1...就不难写出递归的方法了...

#include #include #include #include #include #include #include #include using namespace std;int dfs(long long k,long long h){ if (k==((h-1)/2)) return 0; if (k<(h/2-1)) return dfs(k,h/2); else{ k=h-2-k; return 1-dfs(k,h/2); }}int main(){ freopen("A-small-attempt0.in.txt","r",stdin); freopen("output.txt","w",stdout); int T; cin>>T; long long c=1; for (int i=1;i<=62;i++) c=c*2; for (int cases=1;cases<=T;cases++){ long long k; cin>>k; k--; cout<<"Case #"<

B - gCube

#include #include #include #include #include #include #include #include using namespace std;const int MAXN=100005;int a[MAXN];int main(){ freopen("B-large.in.txt","r",stdin); freopen("output.txt","w",stdout); int T; scanf("%d",&T); for (int cases=1;cases<=T;cases++){ int n,m; scanf("%d%d",&n,&m); for (int i=0;i

C - gCampus

这个之前做过​​类似的​​,跑个floyd然后比较下即可..比较坑的是小数据..跑出结果后不敢提交有么有...

#include #include #include #include #include #include #include #include using namespace std;const int MAXN=20005;struct Edge{ int u,v,c;}edge[MAXN]; int dis[105][105];int ABS(int x){ if (x<0) return -x; return x;} void Floyd(int n){ for (int k=0;kdis[k][v]) dis[u][v]=dis[u][k]+dis[k][v];}bool f[MAXN];int main(){ freopen("C-small-attempt0.in.txt","r",stdin); freopen("output.txt","w",stdout); int T; scanf("%d",&T); for (int cases=1;cases<=T;cases++){ int n,m; scanf("%d%d",&n,&m); memset(dis,0x7f,sizeof(dis)); for (int i=0;i

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:私域流量的留存和极速裂变秘诀!
下一篇:Google APAC 2016 University Graduates Test Round D
相关文章

 发表评论

暂时没有评论,来抢沙发吧~