补题风向标——>>

假装题意知道

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. SDUT_2146:最小子序列和

    题目描述 给你一个长为n(10<=n<=10000)的数组,数组中的每一个数大于等于1小于等于1000000.请你找出一个长为k(1<=k<=1000)的子序列.找序列时,假如 ...

  2. fgetpos, fseek, fsetpos, ftell, rewind - 重定位某个流

    总览 (SYNOPSIS) #include <stdio.h> int fseek(FILE *stream, long offset, int whence); long ftell( ...

  3. selelinum+PhantomJS 爬取拉钩网职位

    使用selenium+PhantomJS爬取拉钩网职位信息,保存在csv文件至本地磁盘 拉钩网的职位页面,点击下一页,职位信息加载,但是浏览器的url的不变,说明数据不是发送get请求得到的. 我们不 ...

  4. 字符串翻转(java)

    1 递归,二分 private static String reverse(String s) { int N = s.length(); if(N <= 1) return s; String ...

  5. xcode中自定义log打印

    打印内容包括 在哪个文件中 ? 在哪个方法中? 将要执行什么操作?   // 此打印实现前提: // 1.在.pch文件中实现自定义log打印方法,log名换为LCLog // 2.定义一个宏obje ...

  6. SVN 初级教程

    版本控制器:SVN 1.SVN 作用? 备份.代码还原.协同修改.多版本项目文件管理.追溯问题代码的编写人和编写时间.权限控制等. 2.版本控制简介 2.1 版本控制[Revision control ...

  7. ffmpeg mp4 mp3 wav flac webm aac ac3 ogg格式转换

    版权声明:本文为博主原创文章,未经允许不得转载. ffmpeg是Linux中转换音频视频文件的常用工具. mp4 to mp3: ffmpeg -i $ID.mp4 -acodec libmp3lam ...

  8. 第三章:systemverilog文本值和数据类型

    1.增强的文本值 2.改进的`define文本替换 3.时间值 4.新的变量类型 5.有符号和无符号类型 6.静态和动态变量(***) 7.类型转换 8.常数 增强的文本值(文本赋值增强) 主要是:位 ...

  9. Java中线程的使用

    多线程的创建及启动 一.继承Thread类创建线程子类 1.在这子类中重写run方法,在run方法内写线程任务代码 2.创建该子类实例,即是创建了一个线程实例 3.调用该实例的start方法来启动该线 ...

  10. 【HIHOCODER 1048】 状态压缩·二

    描述 历经千辛万苦,小Hi和小Ho终于到达了举办美食节的城市!虽然人山人海,但小Hi和小Ho仍然抑制不住兴奋之情,他们放下行李便投入到了美食节的活动当中.美食节的各个摊位上各自有着非常多的有意思的小游 ...