【CF】207 Div.1 B.Xenia and Hamming
2015-07-18 21:07
441 查看
这题目一看很牛逼,其实非常easy。求求最小公倍数,最大公约数,均摊复杂度其实就是O(n)。
/* 356B */ #include <iostream> #include <string> #include <map> #include <queue> #include <set> #include <stack> #include <vector> #include <deque> #include <algorithm> #include <cstdio> #include <cmath> #include <ctime> #include <cstring> #include <climits> #include <cctype> #include <cassert> #include <functional> #include <iterator> #include <iomanip> using namespace std; //#pragma comment(linker,"/STACK:102400000,1024000") #define sti set<int> #define stpii set<pair<int, int> > #define mpii map<int,int> #define vi vector<int> #define pii pair<int,int> #define vpii vector<pair<int,int> > #define rep(i, a, n) for (int i=a;i<n;++i) #define per(i, a, n) for (int i=n-1;i>=a;--i) #define clr clear #define pb push_back #define mp make_pair #define fir first #define sec second #define all(x) (x).begin(),(x).end() #define SZ(x) ((int)(x).size()) #define lson l, mid, rt<<1 #define rson mid+1, r, rt<<1|1 const int maxn = 1e6+5; char s[maxn], d[maxn]; int cs[26]; int cd[26]; int main() { ios::sync_with_stdio(false); #ifndef ONLINE_JUDGE freopen("data.in", "r", stdin); freopen("data.out", "w", stdout); #endif __int64 n, m; scanf("%I64d %I64d", &n, &m); scanf("%s %s", s, d); int slen = strlen(s); int dlen = strlen(d); int g = __gcd(slen, dlen); __int64 lcm = 1LL * slen / g * dlen; __int64 n_ = lcm / slen; __int64 m_ = lcm / dlen; #ifndef ONLINE_JUDGE printf("n_ = %I64d, m_ = %I64d\n", n_, m_); #endif __int64 t = n / n_; __int64 tot; __int64 ans = 0; int i, j, k; for (i=0; i<g; ++i) { // count s memset(cs, 0, sizeof(cs)); for (j=i,tot=0; j<slen; j+=g,++tot) { ++cs[s[j]-'a']; } for (j=i; j<dlen; j+=g) { ans += (tot - cs[d[j]-'a']); } } ans *= t; printf("%I64d\n", ans); #ifndef ONLINE_JUDGE printf("time = %d.\n", (int)clock()); #endif return 0; }
相关文章推荐
- 九度oj 1043
- Spring 源码
- 开发人员写博客的七个理由——既然要一直走下去,就给自己一个好的开始
- 一个简单的php注册界面
- Codeforces Gym 100187E E. Two Labyrinths bfs
- 解决HttpServletResponse输出的中文乱码问题
- hdoj 2767 Proving Equivalences 【有向图 增加最少的边使图强连通】
- 马来西亚外劳市场现状
- spring AspectJ的Execution表达式-备忘笔记(转)
- 输入一段文本,将文本中的所有单词,存放到一个字符串数组中。(要求占用内存最少)
- Eclipse,MyEclipse代码自动提示功能设置
- Codeforces Round #274 (Div. 2) B. Towers
- Struts2源码分析
- 论坛:分页
- 在设计操作系统时,可以考虑的结构组织有哪几种?
- Sitemesh和Struts2结合时Filter的配制顺序
- myeclipse运行applet乱码问题
- PowerDesigner使用时经常报打印错误,提示安装打印机
- MySQL之权限管理
- Codeforces Gym 100187D D. Holidays 排列组合