ContestHunter暑假欢乐赛 SRM 09(TJM大傻逼选手再创佳绩)
T1 f[i]为前i页最少被撕几页,用二分转移就行了,答案为ans=min(f[i]+(n-i)); 不知道为什么写挂了嗯 二分的l初始应该是0
T2 数位DP f[i][1/0][1/0][1/0]表示第i位第一个数是1/0,第二个数是1/0,有无进位的方案数 转移非常恶心。。。 没看见正整数结果WA了,有想到x<y的trick但是觉得这方法应该不用理这个,结果是要的...其实也不知道这做法到底对不对,补题的时候看看吧 事实证明是可以的
贴一波代码,好像大家做的方法都不一样 CYC的方法好喵喵哇,太强辣~ 我人比较傻逼没法治的唉(LLQ也是这种写法 都炒鸡强哇%%%
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cmath>
#include<map>
#define ll long long
using namespace std;
const int maxn=,inf=1e9;
ll n,m,x,y,z,tot,cnt,digit[maxn];
ll f[][][][],ans;
void read(ll &k)
{
int f=;k=;char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(c<=''&&c>='')k=k*+c-'',c=getchar();
k*=f;
}
int main()
{
read(n);read(m);bool flag=;
if(n==m)flag=;
ll x=m,cnt2=;
while(n){digit[++cnt]=n&;n>>=;}
while(x){cnt2++;x>>=;}
if(cnt2>cnt)
{
puts("");
return ;
}
f[][][][]=;
for(int i=;i<=cnt;i++)
{
ll now=m&(1ll<<(i-));
if(now)
{
if(digit[i])
{
f[i][][][]+=f[i-][][][]+f[i-][][][]+f[i-][][][]+f[i-][][][];
f[i][][][]+=f[i-][][][]+f[i-][][][]+f[i-][][][]+f[i-][][][];
if(i==cnt)ans=f[i][][][]+f[i][][][];
}
else
{
f[i][][][]+=f[i-][][][]+f[i-][][][]+f[i-][][][]+f[i-][][][];
f[i][][][]+=f[i-][][][]+f[i-][][][]+f[i-][][][]+f[i-][][][];
}
}
else
{
if(digit[i])
{
f[i][][][]+=f[i-][][][]+f[i-][][][]+f[i-][][][];
f[i][][][]+=f[i-][][][]+f[i-][][][]+f[i-][][][];
if(i==cnt)ans=f[i][][][];
}
else
{
f[i][][][]+=f[i-][][][]+f[i-][][][]+f[i-][][][];
f[i][][][]+=f[i-][][][]+f[i-][][][]+f[i-][][][];
}
}
}
printf("%lld\n",flag?ans-:ans);
return ;
}
T3 1s O(500^3)居然是可以过的TAT
f[L][R]表示[L..R]这个区间的最小次数。
暴力是个O(N^4)的,枚举两个区间,哈希判回文。。。不知道哪里又写挂了只拿了第一部分的暴力分
O(N^3)的也很好想。。可以枚举[L..R]中的一点x,若a[R]==a[x],那么可以把[X+1..R-1]消剩下一个回文,然后把R和这个回文和X一起消掉,则有f[L][R]=min(f[L][R],f[L][X-1]+f[X+1][R-1]);
码力太有问题了...可能创下了最快补完题记录,真的是每题都离正解一步...
这已经不是一次两次了...不想着找原因老是觉得下次注意就行是不会解决的,这么粗糙的人不经过打磨也绝无可能取得好成绩,这段时间要尽力静下心改变自己了
希望没有下一次
ContestHunter暑假欢乐赛 SRM 09(TJM大傻逼选手再创佳绩)的更多相关文章
- ContestHunter暑假欢乐赛 SRM 08
rating再次跳水www A题贴HR题解!HR智商流选手太强啦!CYC也好强%%%发现了len>10大概率是Y B题 dp+bit优化,据LLQ大爷说splay也可以优化,都好强啊.. C题跑 ...
- ContestHunter暑假欢乐赛 SRM 02
惨不忍睹 3个小时都干了些什么... 日常按顺序从A题开始(难度居然又不是递增的 第一眼A题就觉得很简单...写到一半才发现woc那是个环.感觉一下子复杂了,按照链的方法扩展的话要特判很多东西... ...
- ContestHunter暑假欢乐赛 SRM 01 - 儿童节常数赛 爆陵记
最后15min过了两题...MDZZ 果然是不适合OI赛制啊...半场写完三题还自信满满的,还好有CZL报哪题错了嘿嘿嘿(这算不算犯规了(逃 悲惨的故事*1....如果没有CZL的话T1 10分 悲惨 ...
- ContestHunter暑假欢乐赛 SRM 15
菜菜给题解,良心出题人!但我还是照常写SRM一句话题解吧... T1经典题正解好像是贪心...我比较蠢写了个DP,不过还跑的挺快的 f[i]=min( f[j-a[j]-1] )+1 { j+a[j ...
- ContestHunter暑假欢乐赛 SRM 06
T1二分check...为什么这么显然的我没看出来TAT,还在想倒着加入并查集check什么的,题写太多思维定势啦QAQ T2是NOIP题的弱化版...当时没看出来,写了个DP.可以看出这一位比上一位 ...
- ContestHunter暑假欢乐赛 SRM 04
逃了一场SRM(躺 A题可以看成0点到1点,有p的几率从0到1,1-p几率不动,求0到1的期望步数.很显然概率是不降序列数/n!,然后列个方程E[0] = E[0] * (1 - p) + 1,解得E ...
- ContestHunter暑假欢乐赛 SRM 05
T1 组合数,求一下乘法逆元就行了 没取模 没1LL* 爆零了 T2 让最大子段和最小就行,跑最大子段和的时候若超过S就弹出堆中最大的数,每次有负数加进来不断弹出最小的数相加重新加进堆直到为正数,因为 ...
- ContestHunter暑假欢乐赛 SRM 03
你们也没人提醒我有atcoderQAQ... A题曼哈顿距离=欧拉距离就是在同一行或者同一列,记录下i,j出现过的次数,减去就行,直接map过. B题一开始拿衣服了,一直以为排序和不排序答案是一个样的 ...
- CH暑假欢乐赛 SRM 07 天才麻将少女KPM(DP+treap)
首先LIS有个$O(n^2)$的DP方法 $f(i,j)$表示前i个数,最后一个数<=j的LIS 如果$a_i!=0$则有 如果$a_i=0$则有 注意因为$f(i-1,j)\leq f(i-1 ...
随机推荐
- 虚拟机克隆CentOs后网卡问题
1.直接修改 /etc/sysconfig/network-scripts/ifcfg-eth0 删掉UUID HWADDR配置静态地址 2.修改配置文件vi /etc/udev/rules.d/7 ...
- 用列主元消去法分别解方程组Ax=b,用MATLAB程序实现(最有效版)
数值分析里面经常会涉及到用MATLAB程序实现用列主元消去法分别解方程组Ax=b 具体的方法和代码以如下方程(3x3矩阵)为例进行说明: 用列主元消去法分别解方程组Ax=b,用MATLAB程序实现: ...
- unity发布自定义分辨率
如果你需要发布unity时想要使用自己设置的分辨率仅需要一下几个步骤: 打开Build Setting->PlayerSetting->Resolution and Presentatio ...
- 复合词 (Compund Word,UVa 10391)
题目描述: 题目思路: 用map保存所有单词赋键值1,拆分单词,用map检查是否都为1,即为复合词 #include <iostream> #include <string> ...
- spark-submit配置说明
<Spark 官方文档>Spark配置 spark-1.6.0 原文地址 Spark配置 Spark有以下三种方式修改配置: Spark properties (Spark属性)可以控制绝 ...
- RL_Learning
Key Concepts in RL 标签(空格分隔): RL_learning OpenAI Spinning Up原址 states and observations (状态和观测) action ...
- Ubuntu14.04下部署FastDFS 5.08+Nginx 1.9.14
最新的版本可以在这里获取,目前下载的最新版本是5.08,更新于2016-02-03.在这里可以找到更多的说明. 下载好后,server端分为两个部分,一个是tracker,一个是storage.顾 ...
- ThinkPHP - 4 - 学习笔记(2015.4.12)
ThinkPHP D方法 D方法用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下:D('[项目://][分组/]模型' ...
- Linux 应用笔记
Linux 应用笔记 Linux 应用笔记 小书匠 Raspberry Pi 常用命令 CentOs Raspberry Ubuntu python 实用教程 Vim 权限问题 内存分配 shell ...
- 声明变量&定义变量
从编译原理上来说,声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存.而定义就是分配了内存.这对于以关键字extern进行声明是一定成立的,而对声明格式“ ...