2015ACM/ICPC亚洲区上海站
题意:给你一个二叉树,根节点为1,子节点为父节点的2倍和2倍+1,从根节点开始依次向下走k层,问如何走使得将路径上的数进行加减最终结果得到n。
联想到二进制。
思路和这个差不多吧:http://blog.csdn.net/u013068502/article/details/50094561
#include <set> #include <queue> #include <cstdio> #include <vector> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; #define mem(x,y) memset(x, y, sizeof(x)) #define lson l,m,rt << 1 #define rson m+1,r,rt << 1 | 1 ? a : gcd(b, a % b);} int lcm(int a, int b){return a / gcd(a, b) * b;} int main() { int T; scanf("%d", &T); ; cas <= T; cas++) { ; scanf("%d%d", &n, &k); == ) { n--; flag = ; } LL all = ( << (k + )) - ; LL res = (all - n) >> ; printf("Case #%d:\n", cas); ; i < k; i++) { LL temp = << i; )) printf( : temp); ) printf("%I64d -\n", temp); else printf("%I64d +\n", temp); res >>= ; } } ; }
题意:给你一个字符串,找最近的相同字符
#include <set> #include <cmath> #include <queue> #include <cstdio> #include <vector> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; #define mem(x,y) memset(x, y, sizeof(x)) #define lson l,m,rt << 1 #define rson m+1,r,rt << 1 | 1 ? a : gcd(b, a % b);} int lcm(int a, int b){return a / gcd(a, b) * b;} const int INF = 0x3f3f3f3f; ]; int main() { int T; scanf("%d", &T); getchar(); ; cas <= T; cas++) { scanf("%s", s); int len = strlen(s); int ans = INF; ; i < len; i++) { ; j < len; j++) { if(s[i] == s[j]) { ans = min(ans, abs(i - j)); } } } printf( : ans); } ; }
5583 Kingdom of Black and White
题意:给你一个01字符串,要求最多改变一个字符(即0->1或1->0),使相邻相同字符的平方和最大
漏了考虑,改变中间一个区间之后,两个到三个区间变成相同字符的情况。WA了。
#include <set> #include <cmath> #include <queue> #include <cstdio> #include <vector> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; #define mem(x,y) memset(x, y, sizeof(x)) #define lson l,m,rt << 1 #define rson m+1,r,rt << 1 | 1 ? a : gcd(b, a % b);} int lcm(int a, int b){return a / gcd(a, b) * b;} ; int s[maxn]; LL len[maxn]; int main() { int T; scanf("%d", &T); getchar(); ; cas <= T; cas++) { mem(s, -); char ch; ; while(~scanf("%c", &ch)) { if(ch == '\n') break; s[slen++] = ch - '; } , cur = , cnt = ; while(cur <= slen) { ]) { len[cnt++] = cur - temp; temp = cur; } cur++; } LL ans = ; ; i < cnt; i++) { ans += len[i] * len[i]; } LL rec = ans; ; i < cnt; i++) { ) break; ] == && i != ) { ans = max(ans, rec - len[i - ] * len[i - ] - len[i - ] * len[i - ] - len[i] * len[i] + (len[i - ] + len[i - ] + len[i]) * (len[i - ] + len[i - ] + len[i])); } ]) { ans = max(ans, rec + * (len[i - ] - len[i] + )); } ]) { ans = max(ans, rec + * (len[i] - len[i - ] + )); } } printf("Case #%d: %I64d\n", cas, ans); } ; }
题意:有一只青蛙,它从起点(x,y)出发,每次它会走 LCM(x,y) 步到达点 (x+LCM(x,y),y) 或点 (x,y+LCM(x,y)) ,最终,它会到达点(ex,ey),现给你终点(ex,ey),要你求出它的起点有多少种可能。
#include <set> #include <cmath> #include <queue> #include <cstdio> #include <vector> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; #define mem(x,y) memset(x, y, sizeof(x)) #define lson l,m,rt << 1 #define rson m+1,r,rt << 1 | 1 ? a : gcd(b, a % b);} int lcm(int a, int b){return a / gcd(a, b) * b;} ; int main() { int T, fx, fy; scanf("%d", &T); ; cas <= T; cas++) { scanf("%d%d", &fx, &fy); LL ans = ; ) { int g = gcd(fx, fy); if(fy > fx) swap(fx, fy); ) break; int m1 = fx / (fy + g); int m2 = fy / g; fx = m1 * g; fy = m2 * g; ans++; } printf(); } ; }
2015ACM/ICPC亚洲区上海站的更多相关文章
- HDU-5583-Kingdom of Black and White(2015ACM/ICPC亚洲区上海站-重现赛)
Kingdom of Black and White ...
- (HDU 5558) 2015ACM/ICPC亚洲区合肥站---Alice's Classified Message(后缀数组)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5558 Problem Description Alice wants to send a classi ...
- 2015ACM/ICPC亚洲区长春站 L hdu 5538 House Building
House Building Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) ...
- 2015ACM/ICPC亚洲区长春站 J hdu 5536 Chip Factory
Chip Factory Time Limit: 18000/9000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)T ...
- 2015ACM/ICPC亚洲区长春站 H hdu 5534 Partial Tree
Partial Tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)To ...
- 2015ACM/ICPC亚洲区长春站 G hdu 5533 Dancing Stars on Me
Dancing Stars on Me Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- 2015ACM/ICPC亚洲区长春站 F hdu 5533 Almost Sorted Array
Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- 2015ACM/ICPC亚洲区长春站 E hdu 5531 Rebuild
Rebuild Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total S ...
- 2015ACM/ICPC亚洲区长春站 B hdu 5528 Count a * b
Count a * b Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Tot ...
随机推荐
- C#重构之道
定义 重构的定义:在不改变软件可观察行为的前提下,改善其内部结构. 其中,不改变软件行为,是重构最基本的要求.要想真正发挥威力,就必须做到“不需了解软件行为”. 如果一段代码能让你容易了解其行为,说明 ...
- mysql习惯及主从复制参数设置
mysql 重复数据插入 replace into t(id, update_time) values(1, now()); 或 replace into t(id, update_time) sel ...
- 一次完整的HTTP请求所经历的7个步骤
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1. 建立TCP连接在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连 ...
- 基于dom的xss漏洞原理
原文:http://www.anying.org/thread-36-1-1.html转载必须注明原文地址最近看到网络上很多人都在说XSS我就借着暗影这个平台发表下自己对这一块的一些认识.其实对于XS ...
- [NHibernate]代码生成器的使用
目录 写在前面 文档与系列文章 代码生成器的使用 总结 写在前面 前面的文章介绍了nhibernate的相关知识,都是自己手敲的代码,有时候显得特别的麻烦,比如你必须编写持久化类,映射文件等等,举得例 ...
- Shell入门教程:Shell函数详解
Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1.函数定义 ...
- linux source
清华TUNA镜像源https://mirrors.tuna.tsinghua.edu.cn/ 中科大USTC镜像源 https://mirrors.ustc.edu.cn/ ali http://mi ...
- 转:mysql根据经纬度查找排序
一.MySql不使用空间函数,简单版 1.粗算,根据场景得到一个range,计算经纬度,得到的是一个矩形区域(A),不精确,但是已经有范围这个雏形了,最容易实现的方式之一. 1 2 3 4 5 6 w ...
- mysql开启远程连接
修改my.ini 去掉 bind-address 127.0.0.1 或添加 bind-address 0.0.0.0 mysql -u root -p 进入mysql,执行 '; 然后 flush ...
- WebService -- Java 实现之 CXF ( 使用CXF工具生成client 程序)
1. 下载CXF 工具解压到磁盘 2.添加工具bin目录到PATH环境变量 3.创建一个CXF client新项目 4. run -> cmd 到指定目录,并运行工具目录下的批处理 “wadl2 ...