题目描述,我找不见了,大概写一下想法和代码吧。

1. 没有看

2. 由于数据范围很小,就是简单的枚举,求全排列,然后更新答案。

 #include<bits/stdc++.h>
#define pb push_back
typedef long long ll;
using namespace std;
typedef pair<int, int> pii;
const int maxn = 1e3 + ;
int n, k, m;
int a[], b[], u[];
bool ina[], inb[];
int work() {
int r = ;
for (int i = ; i < m; i++) {
if(ina[a[i] ] && ina[b[i] ])
r += u[i];
if(inb[a[i] ] && inb[b[i] ])
r += u[i];
}
return r;
}
void solve() {
cin >> n >> k >> m;
for (int i = ; i < m; i++) {
cin >> a[i] >> b[i] >> u[i];
}
vector<int> p;
for (int i = ; i <= n; i++)
p.push_back(i);
int res = ;
do {
memset(ina, , sizeof ina);
memset(inb, , sizeof inb);
for (int i = ; i < k; i++)
ina[p[i] ] = ;
for (int i = k; i < k * ; i++)
inb[p[i] ] = ;
res = max(res, work());
} while(next_permutation(p.begin(), p.end()));
cout << res << endl;
} int main() {
freopen("test.in", "r", stdin);
//freopen("test.out", "w", stdout);
ios::sync_with_stdio();
cin.tie(); cout.tie();
solve();
return ;
}

3. 这次第三题挺有意思的,求左上角到右下角的最短路径,但是多了一种跳的操作。

我的想法很简单,由于在每一个点上都可以选择跳与不跳,而且只能一次跳, 那就预处理出每个点到起始点的距离,每个点到终点的距离,然后遍历每一个点,更新答案。

一个是这个点到起点的距离加上到终点的距离, 一个是这个点到起点的距离 + 1(完成跳的动作) + 跳之后的点到终点的距离。更新答案。

 #include<bits/stdc++.h>
#define pb push_back
typedef long long ll;
using namespace std;
typedef pair<int, int> pii;
const int maxn = 1e3 + ;
const int inf = 1e5;
int h, w, d, r;
string a[];
int sdis[][], edis[][];
int dx[] = {, , , -};
int dy[] = {, -, , };
bool check(int x, int y) {
if(x < || x >= h || y < || y >= w) return ;
return ;
}
void dfs(int x, int y, int v) {
sdis[x][y] = v;
for (int i = ; i < ; i++) {
int cx = x + dx[i], cy = y + dy[i];
if(check(cx, cy) && a[cx][cy] != '#' && sdis[cx][cy] > v + ) {
dfs(cx, cy, v + );
}
}
}
void dfs1(int x, int y, int v) {
edis[x][y] = v;
for (int i = ; i < ; i++) {
int cx = x + dx[i], cy = y + dy[i];
if(check(cx, cy) && a[cx][cy] != '#' && edis[cx][cy] > v + ) {
dfs1(cx, cy, v + );
}
}
}
void solve() {
cin >> h >> w >> d >> r;
for (int i = ; i < h; i++)
cin >> a[i];
for (int i = ; i < h; i++) {
for (int j = ; j < w; j++)
sdis[i][j] = edis[i][j] = inf;
}
dfs(, , );
dfs1(h - , w - , );
int res = inf;
for (int i = ; i < h; i++) {
for (int j = ; j < w; j++) {
int t1 = sdis[i][j] + edis[i][j];
res = min(res, t1);
int x = i + d, y = j + r;
if(check(x, y)) {
int t2 = sdis[i][j] + edis[x][y] + ;
res = min(res, t2);
} }
}
if(res == inf) res = -;
cout << res << endl;
} int main() {
freopen("test.in", "r", stdin);
//freopen("test.out", "w", stdout);
ios::sync_with_stdio();
cin.tie(); cout.tie();
solve();
return ;
}

4. 目标函数是差的绝对值乘以权值之和, 考虑权值都相等的时候,这时候的最佳点就是中间的那个点(奇数个点是中间点,偶数个点是中间2个点之间的点都行)。

下面考虑权值r不相等的时候,这个函数其实是凹的, 这个性质很重要,可以进行二分查找,目标点是该点比它左右2点的函数值都要小, 如果该点比左边大,比右边小,那查找区间往左移动,否则往右移动。

 #include<bits/stdc++.h>
#define pb push_back
typedef long long ll;
using namespace std;
typedef pair<int, int> pii;
const int maxn = 1e5 + ;
ll len;
int n;
ll a[maxn];
int r[maxn];
ll work(ll x) {
ll res = ;
for (int i = ; i < n; i++) {
res += abs(a[i] - x) * r[i];
}
return res;
}
void solve() {
scanf("%lld%d", &len, &n);
for (int i = ; i < n; i++) {
scanf("%lld%d", &a[i], &r[i]);
}
ll left = , right = len;
ll res = -;
while(left < right) {
ll mid = (left + right) / ;
ll r = work(mid);
ll r1 = work(mid - );
ll r2 = work(mid + );
if(r <= r1 && r <= r2) {
left = right = mid;
break;
} else if(r1 <= r && r <= r2) {
right = mid - ;
} else if(r1 >= r && r >= r2) {
left = mid + ;
}
}
if(left < ) left++;
if(left > len) left--;
printf("%lld\n", work(left));
} int main() {
freopen("test.in", "r", stdin);
//freopen("test.out", "w", stdout);
solve();
return ;
}

indeed 5.13 第二次网测的更多相关文章

  1. 2014-CVTE网测部分软件技术测试题及答案

    1.叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是(D) A.空或只有一个结点 B.高度等于其结点数 C.该二叉树是完全二叉树 D.所有结点无右孩子 应该是二叉树的每个结点都只有一个 ...

  2. < 独立项目 - 文本挖掘 > - 2016/11/13 第二更 - <Python环境准备>

    < 独立项目 -  文本挖掘 > 项目立项的相关背景介绍,TODO方向. 一.Ubuntu环境配置 主机系统:Windows 7 SP1  64位操作系统 | i5-4210 CPU | ...

  3. indeed2017校招在线编程题(网测)三

    A. Calculate Sequence 分析:就是斐波那契递推公式,但是初始值是指定的,只用求第10个数,数据范围和复杂度都比较小,直接写. B. 忘了叫啥了. 就是有a-j十个字符组成的字符串, ...

  4. wap网测一道题目

    1. 给定一个字符串s, 1 <= len(s) <= 3000, 定义odd palindrome string为长度为奇数的回文串, 求s中该奇回文串的个数. 比如axbcba , 结 ...

  5. wap 5.23 网测几道题目

    1. n个犯人,m个省份, 如果相邻的2个犯人来自同一省份,则是不安全的,求不安全的个数. 正难则反,用全部的个数减去非法的个数,就是最后的答案. m^n - m * (m - 1) ^ (n - 1 ...

  6. 5.27 indeed 第三次网测

    1. 第一题, 没有看 2. 暴力枚举.每一个部分全排列, 然后求出最大的请求数. #include<bits/stdc++.h> #define pb push_back typedef ...

  7. indeed 4.22 第一次网测

    1.第一题 没有看 2. 由于数据范围很小,所以每一层需要全排列,寻找最小的花费,然后所有层加起来就是最后的结果. #include<bits/stdc++.h> #define pb p ...

  8. PL/SQL Developer 13注册码(亲测可用)

    product code: 4vkjwhfeh3ufnqnmpr9brvcuyujrx3n3le serial Number: 226959 password: xs374ca

  9. mysql每秒最多能插入多少条数据 ? 死磕性能压测

    前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...

随机推荐

  1. vsftpd:500OOPS:vsftpd:refusingtorunwithwritablerootinsidechroot()错误的解决方法

    当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误: 500 OOPS: vsftpd: refusing to run with writable root inside ...

  2. 初学者怎么才能快速学会Python?

    提起对Python的印象,除了全能之外恐怕就是简单易学了.很多人都在推荐新手学Python入门,毕竟语法简单.语句简洁,所谓“人生苦短我用Python”绝不是一句空话.不过也不能忽视一点:Python ...

  3. Django View(视图系统)

    Django View 官方文档 一个视图函数(类),简称视图,是一个简单的 Python 函数(类),它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误 ...

  4. redis环境部署

    运维开发技术交流群欢迎大家加入一起学习(QQ:722381733) 一.Redis服务介绍: redis简单来讲就是一个数据库,一个用来存储缓存的数据库容器,主要是让项目数据能写进缓存,为用户提搞更舒 ...

  5. windows和linux下 Python2,Python3 的环境及安装

    目录 windows和linux下 Python2,Python3 的环境及安装 window下安装 一. 手动安装 二. pip安装 linux下 安装 更新Python 笔者有话 windows和 ...

  6. PAT 1118 Birds in Forest

    Some scientists took pictures of thousands of birds in a forest. Assume that all the birds appear in ...

  7. Codeforces 918D/917B - MADMAX

    传送门:http://codeforces.com/contest/918/problem/D 本题是一个组合游戏问题——DAG上的动态规划问题. 有一张有向无环图(DAG).有两个玩家在这张图上进行 ...

  8. 【hdu 2108】Shape of HDU

    [题目链接]:http://acm.hdu.edu.cn/showproblem.php?pid=2108 [题意] [题解] 逆时针; 可以想象一下; 如果是凸多边形的话; 逆时针的相邻的两条边; ...

  9. SCU Censor

    Censor frog is now a editor to censor so-called sensitive words (敏感词). She has a long text p . Her j ...

  10. sgu 176 有源汇有上下界的最小流模板题

    /*参考博文:http://hi.baidu.com/dragon_eric123/item/82e259200ece744046996282 有上下界的有源最小流 */ #include<st ...