topcoder 642
A:直接拆开字符串写就好了。
今天的题目比较容易一些:
B:题目大意:
求最少的翻转次数,每次翻转i是对应 y%i==0都会翻转。
球所有翻转为off状态的最小次数;
从最小idx开始,依次做就好了,因为它的状态是以后做不到的。
C:题目大意:
给出一个带权重的无向图。
求最大的height使0-n-1中权重小于Height的话花费(边值-height)^2;
先二分height;然后求出0->n-1中cost 最小的数是否大于给定的值。
求得时候可以用spfa ,当然有dp写法
#include<queue>
#include <string>
#include <vector>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
#define inf 203456789
typedef long long ll; struct node
{
int v,w;
};
vector<node> mp[]; ll dp[];
int boo[];
int n;
long long b; class TallShoes {
public: void bfs(int limit)
{
queue<int> q;
memset(boo,,sizeof(boo));
for (int i=;i<n;i++)
dp[i]=(ll) inf*inf;
dp[]=;
q.push(); while (!q.empty())
{
int u=q.front();
q.pop();
boo[u]=;
for (int i=;i<mp[u].size();i++)
{
int v=mp[u][i].v;
ll k=;
if (mp[u][i].w<limit) k=(ll) (limit-mp[u][i].w)*(limit-mp[u][i].w); if (dp[v]>dp[u]+k)
{
dp[v]=dp[u]+k;
if (!boo[v])
{
boo[v]=;
q.push(v);
}
}
} }
} int pan(int x)
{
bfs(x);
if (dp[n-]<=b) return ;
return ;
} int maxHeight(int N, vector <int> X, vector <int> Y, vector <int> height, long long B) {
n=N;
b=B;
for (int i=;i<X.size();i++){
node edge;
edge.v=Y[i];
edge.w=height[i];
mp[X[i]].push_back(edge);
edge.v=X[i];
mp[Y[i]].push_back(edge);
} int l=,r=; int ans=-;
for (int _=;_<=;_++)
{
int mid=(l+r)/;
if (pan(mid)) {
l=mid;
ans=l;
}
else r=mid;
}
return ans;
}
};
这里初始值的设置要注意
div 1 A:
以为是求期望 ,比想象的简单点:
我们是求>=s的期望值,
先DP出求概率多少,再ans+=(I-S)*dp[i] I>=S;
#include<queue>
#include <string>
#include <vector>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<cstdio> using namespace std;
#define N 111111
typedef long long ll;
double dp[N*]; class WaitingForBus {
public:
double whenWillBusArrive(vector <int> time, vector <int> prob, int s) {
dp[]=;
for (int i=;i<s;i++)
{
for (int j=;j<time.size();j++)
dp[i+time[j]]+=dp[i]*prob[j]/;
} double ans=; for (int i=s;i<*N;i++) //cout<<dp[i]<<" ";
ans+=dp[i]*(i-s);
return ans;
}
};
topcoder 642的更多相关文章
- TopCoder SRM 642 Div.2 1000 --二分+BFS
题意: 给你一张图,N个点(0~N-1),m条边,国王要从0到N-1,国王携带一个值,当走到一条边权大于此值的边时,要么不走,要么提升该边的边权,提升k个单位花费k^2块钱,国王就带了B块钱,问能携带 ...
- TopCoder kawigiEdit插件配置
kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/ ...
- 记第一次TopCoder, 练习SRM 583 div2 250
今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...
- TopCoder比赛总结表
TopCoder 250 500 ...
- Topcoder几例C++字符串应用
本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发 ...
- TopCoder
在TopCoder下载好luncher,网址:https://www.topcoder.com/community/competitive%20programming/ 选择launch web ar ...
- TopCoder SRM 596 DIV 1 250
body { font-family: Monospaced; font-size: 12pt } pre { font-family: Monospaced; font-size: 12pt } P ...
- 求拓扑排序的数量,例题 topcoder srm 654 div2 500
周赛时遇到的一道比较有意思的题目: Problem Statement There are N rooms in Maki's new house. The rooms are number ...
- TopCoder SRM 590
第一次做TC,不太习惯,各种调试,只做了一题...... Problem Statement Fox Ciel is going to play Gomoku with her friend ...
随机推荐
- [下载] VS 2013 Update 4 & 社群版 (Visual Studio Community) & VS 2015 Preview预览版
这是我的备份,原文请看http://www.dotblogs.com.tw/mis2000lab/archive/2014/11/13/vs2013_update4_community_vs2015_ ...
- android在程序中打开另一个程序
在开发android应用的时候,在一些情况下要有前置条件,比如这边所说的要启动时要确保别的应用程序服务已经打开 或者在操作中启动别的应用等. 先来一段google上的代码: 1. 已知包名和类名的情 ...
- C# 查询Windows Service 信息 ,所在目录 启动状态
1.WMI简介WMI是英文Windows Management Instrumentation的简写,它的功能主要是:访问本地主机的一些信息和服务,可以管理远程计算机(当然你必须要拥有足够的权限),比 ...
- 【微网站开发】之微信内置浏览器API使用
最近在写微网站,发现了微信内置浏览器的很多不称心的地方: 1.安卓版的微信内浏览器底部总是出现一个刷新.前进.后退的底部栏,宽度很大,导致屏幕显示尺寸被压缩 2.分享当前网站至朋友圈时,分享的图片一般 ...
- GIS中栅格数据的拼接
Datamanager Tools——Raster——Raster Dataset——Mosaic to New Raster 如果最大值是实际的真值,选择masaic operator要保留Max ...
- android开发系列之回调函数
想必对于回调函数大家肯定不陌生,因为这是我们开发里面常用的代码技巧.我也就不废话了,让我们直接来看代码吧! public class TestCallback { public interface I ...
- Word2013死机的问题
Word2013用公式编辑器经常死机,网上介绍方法.试试看https://zhidao.baidu.com/question/937023473910649252.html1.启动word2013 2 ...
- RCF
1. RCF: 纯c++的RPC, 不引入IDL, 大量用到boost,比较强大.2. casocklib: protobuf + asio 较完善实现3. eventrpc: protobuf + ...
- adb 安装失败
打开Terminal终端:Ctrl + Alt + T 按顺序执行以下三条命令: sudo add-apt-repository ppa:nilarrimogard ...
- QT 十六进制字符串转化为十六进制编码
/*************************************************Function: hexStringtoByteArray()Description: 十六进制字 ...