A

  只有3种情况:200以上的单独装,3个100的装一起,某两个u,v装一起且u+v<=300,

  所以做法是从大到小判断每个大小的最大能与它装一起的是谁,最后剩下100的特判.

B

  第一轮如果未分出胜负,考虑一种情况:

  mov1 >= mov2, 先手至少不会输.

  再判断赢的条件, 设d=mov1-mov2, 先手每一轮结束后可以保证每次距离缩短[1,d],但同时

  先手要保持一个安全距离safe以保证不会被后手反击:

  safe >= mov2+rng2,

  所以当 safe + mov2 <= mov1+d时先手必胜,否则平局.

  后手的推理类似.

 string FoxAndFencing::WhoCanWin(int m1, int m2, int r1, int r2, int d)
{
if (d<=r1+m1) return "Ciel";
else if (d+m1<=r2+m2) return "Liss";
else if (m2==m1) return "Draw";
else if (m1>m2)
{
if (r1+m1-*m2>r2) return "Ciel";
else return "Draw";
}else
{
printf("%d+%d , %d\n",r2,m2,r1);
if (r2+m2-*m1>r1) return "Liss";
else return "Draw";
}
}

C

  首先发现一个性质: 如果某节点x有cnt个孩子,那么往下递归至少有cnt-1个子树存在标记,

  这样才能保证x的子树都被识别,根据这条性质设计dp[i][0/1]即可.

  但是仅仅这样dp会发现最后结果有一条从根到某叶子的未被标记的链,这条链的某些点可能不会被识别,

  为了修正这个问题,可以强制根被标记,换句话说,可以枚举某个被标记的点为根.

  

 #define maxn 51
class TPS {
public:
int minimalBeacons(vector <string>);
};
int dp[maxn][],n,cnts[maxn];
int dfs(int cur,int must,int fa,vector<string> e)
{
int sum=,tmp,res;
if (dp[cur][must]!=-) return dp[cur][must];
if (cnts[cur]==) return dp[cur][must]=must;
for (int i= ; i<n ; i++ ) if (e[cur][i]=='Y' && i!=fa)
sum += dfs(i,,cur,e);
tmp=sum;
for (int i= ; i<n ; i++ ) if(e[cur][i]=='Y' && i!=fa)
tmp = min(tmp,sum-dp[i][]+dfs(i,,cur,e));
if (must && cnts[cur]==) res = sum;
else res = tmp;
if (fa==-) res++;
return dp[cur][must]=res;
}
void initson(int cur,int fa,vector<string> e)
{
for (int i= ; i<n ; i++ )
if (e[cur][i]=='Y' && i!=fa)
{
cnts[cur]++;
initson(i,cur,e);
}
}
int TPS::minimalBeacons(vector <string> e)
{
n = e.size();
int ans = n;
for (int i= ; i<n ; i++ )
{
memset(dp,-,sizeof(dp));
memset(cnts,,sizeof(cnts));
initson(i,-,e);
ans = min(ans,dfs(i,,-,e));
}
return ans;
}

SRM 598 DIV1的更多相关文章

  1. Topcoder SRM 643 Div1 250<peter_pan>

    Topcoder SRM 643 Div1 250 Problem 给一个整数N,再给一个vector<long long>v; N可以表示成若干个素数的乘积,N=p0*p1*p2*... ...

  2. Topcoder Srm 726 Div1 Hard

    Topcoder Srm 726 Div1 Hard 解题思路: 问题可以看做一个二分图,左边一个点向右边一段区间连边,匹配了左边一个点就能获得对应的权值,最大化所得到的权值的和. 然后可以证明一个结 ...

  3. 图论 SRM 674 Div1 VampireTree 250

    Problem Statement      You are a genealogist specializing in family trees of vampires. Vampire famil ...

  4. SRM 583 DIV1

    A 裸最短路. class TravelOnMars { public: int minTimes(vector <int>, int, int); }; vector<int> ...

  5. SRM 590 DIV1

    转载请注明出处,谢谢viewmode=contents">http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlov ...

  6. Topcoder SRM 602 div1题解

    打卡- Easy(250pts): 题目大意:rating2200及以上和2200以下的颜色是不一样的(我就是属于那个颜色比较菜的),有个人初始rating为X,然后每一场比赛他的rating如果增加 ...

  7. 状态压缩DP SRM 667 Div1 OrderOfOperations 250

    Problem Statement      Cat Noku has just finished writing his first computer program. Noku's compute ...

  8. 数学 SRM 690 Div1 WolfCardGame 300

    Problem Statement      Wolf Sothe and Cat Snuke are playing a card game. The game is played with exa ...

  9. SRM 618 DIV1 500

    非常棒的组合问题,看了好一会,无想法.... 有很多做法,我发现不考虑顺序的最好理解,也最好写. 结果一定是两种形式 A....A   dp[n-1] A...A...A sgma(dp[j]*dp[ ...

随机推荐

  1. 修改oracle服务器所在linux主机名

    1.修改/etc/hosts 2.修改 /etc/sysconfig/network 3.修改oracle的 listener.ora 4.修改 tnsnames.ora  

  2. 【Ruby on Rails 学习一】ubuntu14.04配置rvm与ruby

    要安装ruby,首先要安装rvm,借助rvm安装ruby rvm 的全称是 Ruby Version Manager ,是一款由 Wayne E. Seguin  开发的一款命令行工具.rvm 能够让 ...

  3. (转)iOS5:[UIDevice uniqueIdentifier]的替代方案

    背景: 大多数应用都会用到苹果设备的UDID号,UDID通常有以下两种用途: 1)用于一些统计与分析目的:[第三方统计工具如友盟,广告商如ADMOB等] 2)将UDID作为用户ID来唯一识别用户,省去 ...

  4. (转)在Android的webview中定制js的alert,confirm和prompt对话框的方法

    1.首先继承android.webkit.WebChromeClient实现MyWebChromeClient. 2.在MyWebChromeClient.java中覆盖onJsAlert,onJsC ...

  5. SOA——面向服务的体系架构

    上一篇博文中提到了"紧耦合"的现象.怎样解决?SOA.採用面向服务的体系架构. 一.What? SOA=Service-oriented Architecture面向服务的体系结构 ...

  6. 【剑指offer】二叉搜索树的后序遍历序列

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/26092725 剑指offer上的第24题,主要考察递归思想,九度OJ上AC. 题目描写叙述 ...

  7. android高仿微信UI点击头像显示大图片效果

    用过微信的朋友朋友都见过微信中点击对方头像显示会加载大图,先贴两张图片说明下: 这种UI效果对用户的体验不错,今天突然有了灵感,试着去实现,结果就出来了.. 下面说说我的思路: 1.点击图片时跳转到另 ...

  8. Ajax&XMLHttpRequest

    XMLHttpRequest 简单省力的方法 将文件编码成base64通过Ajax上传 HTML5学习之FileReader接口 HTML5学习之FileReader接口 通过Ajax方式上传文件,使 ...

  9. Ngnix安装

    一.pcre安装 yum install pcre 或 https://sourceforge.net/projects/pcre/files/pcre/8.37/ 手动下载后上传至linux 1.y ...

  10. 服务 远程服务 AIDL 进程间通讯 IPC 深化

    示例 aidl接口文件 package com.bqt.aidlservice.aidl; parcelable Person;  package com.bqt.aidlservice.aidl; ...