topcoder 649 DIV2
8
A:模拟
9:B:终于看懂题目。。。
题意:最多分解K次
每分钟一个数可以分解成两个数 或者-1;
关键字:DP,记忆花搜索。
DP[I][J]=min(dp[i][j],1+max(dp[ii][jj],dp[i-ii][j-jj-1]);
1 #include<iostream>
2 #include <string>
3 #include <vector>
4 #include<cmath>
5 #include <string.h>
6 using namespace std;
7 int dp[][];
8 class CartInSupermarketEasy {
9 public:
int dfs(int n,int k)
{
if (dp[n][k]!=-) return dp[n][k];
if (n==) return ;
if (k==) return n;
if (n==) return ;
int ans=dfs(n-,k)+;
for (int i=;i<=n;i++)
for (int j=;j<k;j++)
{
ans=min(ans,+ max(dfs(i,j),dfs(n-i,k-j-)));
}
dp[n][k]=ans;
return dp[n][k];
}
int calc(int N, int K) {
memset(dp,-,sizeof(dp));
return dfs(N,K);
}
// int t=round(log(N)/log(2))
};
int main()
{
CartInSupermarketEasy p;
int n,k;
cin>>n>>k;
cout<<p.calc(n,k);
return ;
}
// Powered by FileEdit
// Powered by TZTester 1.01 [25-Feb-2003]
// Powered by CodeProcessor
10:C 关键字:贪心;先联想成二进制。有这样一个性质:我们这样考虑,比如一个N 最大是:100000;然后我们这样枚举:100000 10000 1000 100 10 1 0因为如果100000产生的答案更大的话接下来枚举10000而两者不矛盾 逐次枚举使答案更大 #include<iostream>#include<string.h>#include <string>#include <vector>using namespace std;class XorSequenceEasy { public: int getmax(vector <int> A, int N) { int n=A.size(); int ans=0; for (int k=N;k;k>>=1) { int cnt1=0; for (int i=0;i<n;i++) for (int j=i+1;j<n;j++) if (A[j]>A[i]) cnt1++; for (int i=0;i<n;i++) A[i]^=k; int cnt2=0; for (int i=0;i<n;i++) for (int j=i+1;j<n;j++) if (A[j]>A[i]) cnt2++; ans=max(ans,max(cnt1,cnt2)); if (cnt1>cnt2) for (int i=0;i<n;i++) A[i]^=k; } return ans; }};
topcoder 649 DIV2的更多相关文章
- TopCoder 649 div1 & div2
最近一场TC,做得是在是烂,不过最后challenge阶段用一个随机数据cha了一个明显错误的代码,最后免于暴跌rating,还涨了一点.TC题目质量还是很高的,非常锻炼思维,拓展做题的视野,老老实实 ...
- topcoder 594 DIV2 foxandclassroom
暴力枚举 1 #include <iostream> #include <vector> #include <string> using namespace std ...
- topcoder 643 DIV2
太弱了,太弱了! A:基本的判断吧,然后就是边界问题,写了好久,结果发现时房间第二个交的.. B:真心跪了,还好想出来了,思路想的太慢太慢,结果交上去,落后太多,不过HACK时很多人挂了, 这也是DI ...
- ACM学习历程—TopCoder SRM691 Div2
这是我的第一次打TC,感觉打的一般般吧.不过TC的题目确实挺有意思的. 由于是用客户端打的,所以就不发题目地址了. 300分的题: 这题大意是有一段序列只包含+和数字0~9. 一段序列的操作是,从头扫 ...
- TopCoder SRM596 DIV2 1000: SparseFactorialDiv2
题意: For an integer n, let F(n) = (n - 0^2) * (n - 1^2) * (n - 2^2) * (n - 3^2) * ... * (n - k^2), wh ...
- Topcoder 658 650 point
Topcoder 658 div2 500 加强版 不过给了<=20,暴力肯定不行. 然后想DP方程,先二分可能需要的最大次数mid; 然后根据 mid 构造 DP方程. 假设x[i]需要 x个 ...
- Topcoder Srm 673 Div2 1000 BearPermutations2
\(>Topcoder \space Srm \space 673 \space Div2 \space 1000 \space BearPermutations2<\) 题目大意 : 对 ...
- Topcoder Srm 671 Div2 1000 BearDestroysDiv2
\(>Topcoder \space Srm \space 671 \space Div2 \space 1000 \space BearDestroysDiv2<\) 题目大意 : 有一 ...
- 记第一次TopCoder, 练习SRM 583 div2 250
今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...
随机推荐
- AI学习一:环境安装
对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太慢,浪费时间.而且经常出现下载后安装出错问题.所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成 ...
- OSI七层模型和TCP/IP五层模型详解
OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范.OSI模型有7层结构,每层都可以有几个子层. OSI的7层从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 ...
- 关于Java的三种普通排序
首先要知道是哪几种排序 这里我们所说的是 冒泡排序,选择排序以及插入排序 然后要理解大概的排序速度 : 插入<选择<冒泡 下面是代码 大家可以拷贝自己在java环境里运行运行! publi ...
- Ubuntu14.04环境下Qt5.5以上版本无法输入中文的解决教程
1.前言 由于Qt5.4之后对之前的Qt5版本不再二进制兼容,所以网上很多简单的旧的办法已经失效了,所以本教程的办法是重新编译fcitx-qt5,生成最新的libfcitxplatforminputc ...
- PHP 安装完成后 增加 bcmath 模块
1. cd /usr/local/src/php-5.6.38/ext/bcmath 目录2. /usr/local/php/bin/phpize 生成configure需要的配置文件3. ./ ...
- zabbix 3.4安装
一.server安装 [root@zabbix ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@zabbix ~]# una ...
- echart使用自定义单个柱状颜色实现
项目实践中遇到一个根据需要,当X轴等于某个值是,柱状变成特殊颜色的需求,大致有两个方案实现: 1.在前台遍历数据对象,判断设置: 2.在后台拼装数据是,按照格式要求拼装好: 手拉手,用Vue开发动态刷 ...
- Linux基础(Ubuntu)
更换apt源为清华源 1.备份 /etc/apt/sources.list 2.vim 编辑 /etc/apt/sources.list 添加 deb http://mirrors.tuna.tsin ...
- Android开发——程序锁的实现(可用于开发钓鱼登录界面)
1. 程序锁原理 1.1 实现效果: 在用户打开一个应用时,若此应用是我们业务内的逻辑拦截目标,那就在开启应用之后,弹出一个输入密码的界面,输入密码正确则进入目标应用.若不输入直接按返回键,则直接返回 ...
- java中如何将string转化成long