补题风向标——>>

假装题意知道

A:暴力合成一遍了

n=s.size();

m=t.size();

ss+=s;

tt+=t;

if (ss==tt) or not;

B:题意是给定 1个或者2个或者3个,先假设3个数啊:a,b,c;

每次你能a-9,b-3,c-1 类似如此过程,求最小操作数。DIV 1 650是加强版 数的个数<=50;

只会最暴力,然后DP数组保存状态,已经都最暴力了,所以不用想很多了

#include<cstdio>
#include<algorithm>
#include<cmath>
#include<string.h>
#include<string>
#include<iostream>
#include<vector> using namespace std; int a[123];
int dp[66][66][66];
int n; int dfs(int x,int y,int z)
{
if (x<=0&&y<=0&&z<=0) return 0;
if (dp[x][y][z]) return dp[x][y][z];
int mx=1234;
mx=min(mx,dfs(max(0,x-1),max(0,y-3),max(0,z-9)));
mx=min(mx,dfs(max(0,x-1),max(0,y-9),max(0,z-3)));
mx=min(mx,dfs(max(0,x-3),max(0,y-1),max(0,z-9)));
mx=min(mx,dfs(max(0,x-3),max(0,y-9),max(0,z-1)));
mx=min(mx,dfs(max(0,x-9),max(0,y-3),max(0,z-1)));
mx=min(mx,dfs(max(0,x-9),max(0,y-1),max(0,z-3)));
return dp[x][y][z]=mx+1;
}
class MutaliskEasy
{
public:
int minimalAttacks(vector <int> x)
{
n=x.size();
memset(dp,0,sizeof(dp));
sort(x.begin(),x.end());
for (int i=0;i<n;i++) a[i]=x[i];
int ans=0;
if (n==1) return (a[0]+8)/9;
if (n==2) a[2]=0; return dfs(a[0],a[1],a[2]);
}
}; int main()
{ int n;
vector<int> q;
cin>>n;
for (int i=0;i<n;i++)
{
int x;
cin>>x;
q.push_back(x);
}
MutaliskEasy p;
cout<<p.minimalAttacks(q);
return 0; }

 C: 是DIV1 A

题目很炫酷啦;

给一颗树 X[I][J]=='O',表示I,J 长度为奇数,X[I][J]=='E' 表是为偶数 ‘?’ 不确定  

先来第一份,类似floyd dp 找,我们知道奇数+偶数=奇数,其他全为偶数。

我们先判断 是否不满足答案 输出-1;

然后构造:0 到其他点 为奇数 连一条边,

0到Y Y到其他边 再连一条边,0->y 是奇书,0->其他边为偶数

虽然说得很容统,不过确实不会 ,想了很久,脑洞大。。

#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <ctime>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <deque>
#include <set> using namespace std; /* int dfs(int v,int w)
{
c[v]=w;
for (int i=0;i<n;i++)
{
if (x[v][i]=='E'&&x[i][v]=='O') return 0;
if (x[v][i]=='O'&&x[i][v]=='E') return 0; if (x[v][i]=='E'||x[i][v]=='E')
{
if (c[i]==0)
{
if (dfs(i,w)==0) return 0;
}
else if (w!=c[i]) return 0;
}
else if (x[v][i]=='O'||x[i][v]=='O')
{
if (c[i]==0)
{
if (dfs(i,w==1?2:1)==0) return 0;
}
else if (w==c[i]) return 0;
}
}
return 1;
}
*/
int a[60][60]; class OddEvenTree{
public:
vector<int> getTree(vector <string> x){
int n=x[0].size(); for (int i=0;i<n;i++)
for (int j=0;j<n;j++)
if (x[i][j]=='O') a[i][j]=1; vector<int> t;
t.push_back(-1);
for (int k=0;k<n;k++)
for (int i=0;i<n;i++)
for (int j=0;j<n;j++)
if ((a[i][k]+a[k][j])%2!=a[i][j]) return t; vector<int>res;
int y=-1;
for (int i=1;i<n;i++)
if (a[0][i])
{
res.push_back(0);
res.push_back(i);
y=i;
} if (y==-1) return t;
for (int i=1;i<n;i++)
if (!a[0][i])
{
res.push_back(y);
res.push_back(i);
}
return res;
}
};

 DFS版。。

#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <ctime>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <deque>
#include <set> using namespace std; /* int dfs(int v,int w)
{
c[v]=w;
for (int i=0;i<n;i++)
{
if (x[v][i]=='E'&&x[i][v]=='O') return 0;
if (x[v][i]=='O'&&x[i][v]=='E') return 0; if (x[v][i]=='E'||x[i][v]=='E')
{
if (c[i]==0)
{
if (dfs(i,w)==0) return 0;
}
else if (w!=c[i]) return 0;
}
else if (x[v][i]=='O'||x[i][v]=='O')
{
if (c[i]==0)
{
if (dfs(i,w==1?2:1)==0) return 0;
}
else if (w==c[i]) return 0;
}
}
return 1;
}
*/
int a[60][60]; class OddEvenTree{
public:
vector<int> getTree(vector <string> x){
int n=x[0].size(); for (int i=0;i<n;i++)
for (int j=0;j<n;j++)
if (x[i][j]=='O') a[i][j]=1; vector<int> t;
t.push_back(-1);
for (int k=0;k<n;k++)
for (int i=0;i<n;i++)
for (int j=0;j<n;j++)
if ((a[i][k]+a[k][j])%2!=a[i][j]) return t; vector<int>res;
int y=-1;
for (int i=1;i<n;i++)
if (a[0][i])
{
res.push_back(0);
res.push_back(i);
y=i;
} if (y==-1) return t;
for (int i=1;i<n;i++)
if (!a[0][i])
{
res.push_back(y);
res.push_back(i);
}
return res;
}
};

  

正常人类版

Topcoder 658Div2的更多相关文章

  1. TopCoder kawigiEdit插件配置

    kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/ ...

  2. 记第一次TopCoder, 练习SRM 583 div2 250

    今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...

  3. TopCoder比赛总结表

    TopCoder                        250                              500                                 ...

  4. Topcoder几例C++字符串应用

    本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发 ...

  5. TopCoder

    在TopCoder下载好luncher,网址:https://www.topcoder.com/community/competitive%20programming/ 选择launch web ar ...

  6. TopCoder SRM 596 DIV 1 250

    body { font-family: Monospaced; font-size: 12pt } pre { font-family: Monospaced; font-size: 12pt } P ...

  7. 求拓扑排序的数量,例题 topcoder srm 654 div2 500

    周赛时遇到的一道比较有意思的题目: Problem Statement      There are N rooms in Maki's new house. The rooms are number ...

  8. TopCoder SRM 590

     第一次做TC,不太习惯,各种调试,只做了一题...... Problem Statement     Fox Ciel is going to play Gomoku with her friend ...

  9. Topcoder Arena插件配置和训练指南

    一. Arena插件配置 1. 下载Arena 指针:http://community.topcoder.com/tc?module=MyHome 左边Competitions->Algorit ...

随机推荐

  1. vue同胞组件通讯解决方案(以下为一种另外可用vuex解决)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. Java JDK装配置

     1- 介绍 本文章介绍JAVA开发环境安装是基于:  Java8(JDK8) 2- 下载JDK http://www.oracle.com/technetwork/java/javase/dow ...

  3. SQLite -创建数据库

    SQLite -创建数据库 SQLite sqlite3命令用于创建新的SQLite数据库.你不需要有任何特权来创建一个数据库. 语法: sqlite3命令的基本语法如下: $sqlite3 Data ...

  4. powerDesigner 把name项添加到注释(comment),完美方案!

    第一次写博客,分享一点经验吧,平时大家用powerDesigner的时候,pd是不会把name项默认添加到comment的,所以生成的数据库表里面也没有中文字段的注释. 我在网上查了一下.有解决方案了 ...

  5. k近邻法(kNN)

    <统计学习方法>(第二版)第3章 3 分类问题中的k近邻法 k近邻法不具有显式的学习过程. 3.1 算法(k近邻法) 根据给定的距离度量,在训练集\(T\)中找出与\(x\)最邻近的\(k ...

  6. QT_3

    1.QT中命名的规范和常用的快捷键 1.1 命名规范: 类名:首字母大写    多个单词时单词与单词之间首 字母大写 函数名:变量名称   首字母小写    多个单词时,单词和单词之间首字母大写 1. ...

  7. docker运行时设置redis密码并替换redis默认的dump.rdb

    docker run -itd --name test -p 6379:6379 -v /tmp/dump.rdb:/data/dump.rdb redis:4.0.8 --requirepass ' ...

  8. InnoDB体系架构总结(一)

    缓冲池:    是一块内存区域,通过内存的速度来弥补磁盘速度较慢对数据库性能的影响.在数据库中读取的页数据会存放到缓冲池中,下次再读取相同页的时候,会首先判断该页是否在缓冲池中.对于数据库中页的修改操 ...

  9. 04 Beautiful Soup

    Beautiful Soup 简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: ''' Beautiful Soup提供一些简单的.py ...

  10. MVC Remote属性验证

    模型验证方式一: 1.需要添加引用: using System.Web.Mvc; 2.在模型属性上添加验证: [Remote("CheckIsHaveSerialNo", &quo ...