水题放送,写得依旧丑:

 #include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <vector>
using namespace std; const int INF = 2e9 + ;
typedef long long ll;
typedef pair<int, int> P;
int H, G;
ll f[][][];
int dishg[][];
int dish[], disg[];
vector<P> hh, gg; int sqr(int x) {
return x * x;
} int dis(vector<P> v1, int i, vector<P> v2, int j) {
return sqr(v1[i].first - v2[j].first) + sqr(v1[i].second - v2[j].second);
} void init() {
for (int i = ; i <= H; i++)
for (int j = ; j <= G; j++)
dishg[i][j] = dis(hh, i, gg, j);
f[][][] = INF;
for (int i = ; i <= H; i++) {
dish[i] = dis(hh, i-, hh, i);
f[i][][] = f[i-][][] + dish[i];
f[i][][] = INF;
}
for (int j = ; j <= G; j++) {
disg[j] = dis(gg, j-, gg, j);
f[][j][] = INF;
f[][j][] = INF;
}
} ll dp() {
for (int i = ; i <= H; i++) {
for (int j = ; j <= G; j++) {
ll a = min(f[i-][j][] + dish[i], f[i-][j][] + dishg[i][j]);
ll b = min(f[i][j-][] + dishg[i][j], f[i][j-][] + disg[j]);
f[i][j][] = a;
f[i][j][] = b;
}
}
return f[H][G][];
} int main() {
scanf("%d%d", &H, &G);
hh.push_back(P(, ));
gg.push_back(P(, ));
for (int i = ; i <= H; i++) {
int x, y;
scanf("%d%d", &x, &y);
hh.push_back(P(x, y));
}
for (int i = ; i <= G; i++) {
int x, y;
scanf("%d%d", &x, &y);
gg.push_back(P(x, y));
}
init();
printf("%lld\n", dp());
return ;
}

BZOJ4745

 #include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <vector>
using namespace std; const int INF = 2e9 + ;
typedef long long ll;
typedef pair<int, int> P;
int N, H, Delta;
int f[][], eat[][];
int pos1[]; int dp() {
for (int i = ; i <= H; i++) {
int maxx = ;
for (int j = ; j <= N; j++) {
f[i][j] = f[i-][j];
if (i > Delta) {
int t = i - Delta;
f[i][j] = max(f[i][j], f[t][pos1[t]]);
}
f[i][j] += eat[j][i];
if (f[i][j] > maxx) {
maxx = f[i][j];
pos1[i] = j;
}
}
}
int ans = ;
for (int i = ; i <= N; i++)
ans = max(ans, f[H][i]);
return ans;
} int main() {
scanf("%d%d%d", &N, &H, &Delta);
for (int i = ; i <= N; i++) {
int ni, pos;
for (scanf("%d", &ni); ni; ni--) {
scanf("%d", &pos);
eat[i][pos]++;
}
}
printf("%d\n", dp());
return ;
}

BZOJ1270

 #include <bits/stdc++.h>
#define ri readint()
#define gc getchar()
#define ls p << 1
#define rs p << 1 | 1
using namespace std; typedef long long ll;
const int maxn = ;
int n, m;
struct Seg {
int l, r;
bool fixed;
ll sum;
}t[maxn << ]; inline int readint() {
int x = , s = , c = gc;
while (c <= ) c = gc;
if (c == '-') s = -, c = gc;
for (; isdigit(c); c = gc)
x = x * + c - ;
return x * s;
} void build(int l, int r, int p) {
t[p].l = l, t[p].r = r;
if (l == r) {
t[p].sum = ri;
t[p].fixed = t[p].sum <= 1ll;
return;
}
int mid = (l + r) >> ;
build(l, mid, ls);
build(mid+, r, rs);
t[p].sum = t[ls].sum + t[rs].sum;
t[p].fixed = t[ls].fixed && t[rs].fixed;
} void Update(int l, int r, int p) {
if (t[p].fixed) return;
if (t[p].l == t[p].r) {
t[p].sum = sqrt(t[p].sum);
t[p].fixed = t[p].sum <= 1ll;
return;
}
int mid = (t[p].l + t[p].r) >> ;
if (l <= mid) Update(l, r, ls);
if (mid < r) Update(l ,r, rs);
t[p].sum = t[ls].sum + t[rs].sum;
t[p].fixed = t[ls].fixed && t[rs].fixed;
} ll Query(int l, int r, int p) {
if (l <= t[p].l && t[p].r <= r)
return t[p].sum;
int mid = (t[p].l + t[p].r) >> ;
ll res = 0ll;
if (l <= mid) res += Query(l, r, ls);
if (mid < r) res += Query(l, r, rs);
return res;
} int main() {
n = ri;
build(, n, );
for (m = ri; m; m--) {
int x = ri, l = ri, r = ri;
if (x == ) {
printf("%lld\n", Query(l, r, ));
} else {
Update(l, r, );
}
}
return ;
}

BZOJ3211

cf818E,计数不一定非要乘法原理,枚举标杆累加。此题性质符合尺取,l和r可不断后移。

 #include <bits/stdc++.h>
using namespace std; const int maxn = 1e5 + ;
int n, k, a[maxn];
int pri[], cnt[], t;
int b[maxn][]; void div(int k) {
for (int i = ; i * i <= k; i++) {
if (k % i == ) {
pri[++t] = i;
while (k % i == ) {
k /= i;
cnt[t]++;
}
}
}
if (k > ) {
pri[++t] = k;
cnt[t] = ;
}
} long long two_point() {
int l = , r = ;
long long ans = ;
while (l <= n) {
bool valid = false;
while (r < n && !valid) {
r++;
valid = true;
for (int j = ; j <= t; j++)
valid &= (b[r][j] - b[l-][j]) >= cnt[j];
}
if (!valid) break;
while (l <= r && valid) {
ans += n - r + ;
l++;
for (int j = ; j <= t; j++)
valid &= (b[r][j] - b[l-][j]) >= cnt[j];
}
}
return ans;
} int main() {
scanf("%d%d", &n, &k);
div(k);
for (int i = ; i <= n; i++) {
scanf("%d", &a[i]);
for (int j = ; j <= t; j++) {
while (a[i] % pri[j] == ) {
a[i] /= pri[j];
b[i][j]++;
}
b[i][j] += b[i-][j];
}
}
cout << two_point() << endl;
return ;
}

cf818F,我强猜一下结论的原因:难道是因为完全图边多、链桥多,所以边多桥多就凑一起?

 #include <bits/stdc++.h>
using namespace std; typedef long long ll;
int q;
ll n; ll judge(ll k) {
return n - k + min(n - k, (k*k - k) / );
} int main() {
ios_base::sync_with_stdio(false);
cin.tie();
for (cin >> q; q; q--) {
cin >> n;
ll l = , r = n;
while (l < r-) {
ll lmid = (l + r) >> ;
ll rmid = (lmid + r) >> ;
if (judge(lmid) < judge(rmid))
l = lmid;
else r = rmid;
}
cout << max(judge(r), judge((l + r) >> )) << "\n";
}
return ;
}

cf822D,遍历素因子的技巧值得学习。以及貌似第一发猜的结论好像是对的但是我写挂了……but还是正解优雅。

 #include <bits/stdc++.h>
using namespace std; typedef long long ll;
const int maxn = 5e6 + ;
const int mod = 1e9 + ;
const ll INF = 1e18;
int t, l, r;
ll f[maxn];
int primes[maxn]; void init() {
for (int i = ; i <= r; i++) {
primes[i] = i;
f[i] = INF;
}
for (int i = ; i * i <= r; i++) {//不采集素数时不需遍历maxn
if (primes[i] == i) {
for (int j = i * i; j <= r; j += i)
primes[j] = min(primes[j], i);
}
}
for (int i = ; i <= r; i++) {
for (int j = i; j != ; j /= primes[j]) {//遍历素因子
f[i] = min(f[i], f[i / primes[j]] + 1LL * i * (primes[j] - ) / 2LL);
}
}
} int main() {
scanf("%d%d%d", &t, &l, &r);
init();
ll ans = , tt = ;
for (int i = l; i <= r; i++) {
f[i] %= mod;
ans = (ans + tt * f[i]) % mod;
tt = tt * t % mod;
}
cout << ans << endl;
return ;
}

#13:人十我一Orz——6的更多相关文章

  1. C语言必会面试题(3、耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)

    3.耶稣有13个门徒.当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1.2,3.1,2,3.... 凡是报到"3"就退出圈子.最后留在圈子 ...

  2. 转:Java开发牛人十大必备网站

    原文来自于:http://www.importnew.com/7980.html 以下是我收集的Java开发牛人必备的网站.这些网站可以提供信息,以及一些很棒的讲座, 还能解答一般问题.面试问题等.质 ...

  3. docker探索-CentOS7中配置Docker的yum源并升级安装docker1.13(十)

    此处使用的是CentOS7,内核版本为 [root@localhost ~]# uname -r -.el7.x86_64 该版本下,配置了yum的源为阿里的镜像源,具体的配置方法可以参见阿里镜像源配 ...

  4. Java开发牛人十大必备网站

    以下是我收集的Java开发牛人必备的网站.这些网站可以提供信息,以及一些很棒的讲座, 还能解答一般问题.面试问题等.质量是衡量一个网站的关键因素,我个人认为这些网站质量都很好.接下来,我会跟大家分享我 ...

  5. 13. 第十二篇 二进制安装kubelet

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483842&idx=1&sn=1ef1cb06 ...

  6. Fibonacci Again 分类: HDU 2015-06-26 11:05 13人阅读 评论(0) 收藏

    Fibonacci Again Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...

  7. Digital Roots 分类: HDU 2015-06-19 22:56 13人阅读 评论(0) 收藏

    Digital Roots Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

  8. Elevator 分类: HDU 2015-06-19 21:52 13人阅读 评论(0) 收藏

    Elevator Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  9. THE DRUNK JAILER 分类: POJ 2015-06-10 14:50 13人阅读 评论(0) 收藏

    THE DRUNK JAILER Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24918   Accepted: 1563 ...

随机推荐

  1. redis一些笔记

    base 字典: hget/hset 在redis字典中值只能是字符串,使用渐进式进行rehash.在rehash的过程中,会保留两个hash结构:查询时会同时查询两个结构:逐渐完成hash的迁移. ...

  2. zoom:1

    zoom这个特性是IE特有的属性.   zoom:1;一般是拿来解决IE6的子元素浮动时候父元素不随着自动扩大的问题,功能相当于overflow:auto,同样也可以用height:1%来代替zoom ...

  3. HDU2512 一卡通大冒险 —— 第二类斯特林数

    题目链接:https://vjudge.net/problem/HDU-2512 一卡通大冒险 Time Limit: 2000/1000 MS (Java/Others)    Memory Lim ...

  4. Codeforces Round #363 (Div. 2) C. Vacations —— DP

    题目链接:http://codeforces.com/contest/699/problem/C 题解: 1.可知每天有三个状态:1.contest ,2.gym,3.rest. 2.所以设dp[i] ...

  5. 阿里云数据库产品HybridDB简介——OLAP数据库,支持行列混合存储,基于数据库Greenplum的开源版本,并且吸收PostgreSQL精髓

    为什么会有HybridDB的诞生?它经历了怎样的研发历程?它的应用场景和情况是怎样的?带着这些问题,InfoQ对阿里云的数据库专家兼Postgres中国社区/中国用户会主席萧少聪先生进行了采访,以下文 ...

  6. bzoj1556 (DP)

    bzoj 1556 点这里打开题目 题目是求 a^2 求和: 原问题可以转化为:两个人在玩这个东西,问这两个人弄出来的序列相同的有多少种情况,操作方式不同即为一种不同的情况. 就这个问题,参考大佬的D ...

  7. 【转】澄清P问题、NP问题、NPC问题

    首先,原文链接.(这篇文章让我第一次有了感谢腾讯,感谢微信,感谢微信公众号的冲动.总之,非常感谢作者的分享.) 然后:结论图如下 担心万一哪天原网站把这篇文章下线,所以原文内容复制过来. 澄清P问题. ...

  8. 「SDFZ听课笔记」二分图&&网络流

    二分图? 不存在奇环(长度为奇数的环)的图 节点能黑白染色,使得不存在同色图相连的图 这两个定义是等价哒. 直观而言,就是这样的图: 二分图有一些神奇的性质,让一些在一般图上复杂度飞天的问题可以在正常 ...

  9. css3 position:sticky

    最近在写一个小程序,项目中遇到一个需求:页面滚动到tab切换菜单时,菜单fixed到页面顶部: 实现方法: 使用小程序的onPageScroll事件,滚动到指定位置添加fixed样式: bug1:获取 ...

  10. 【旧文章搬运】为什么win32k.sys在System进程空间无法访问

    原文发表于百度空间,2010-01-02========================================================================== 玩过Sha ...