2模02day1题解
源文件在我的网盘上。链接:http://pan.baidu.com/s/1qWPUDRm 密码:k52e
(只有机智的人才能看到我的链接)
机智的双重下划线~~~
T1
T1就是一个递推,这题目把我恶心到了。。。
用double即可。上 代码。
#include <cstring>
#include <cstdio>
int n,i,j,k,m,l,t,v,u,s,d;
int coml[2000],comr[2000],man;
double mat[2000][2000],mat2[2000],mat3[2000],ma;
#define ubit 0xffffffff
int main(){
freopen("elimination.in","r",stdin);
freopen("elimination.out","w",stdout);
scanf("%d",&n);
m=1<<n;
for(i=0;i<m;++i){
mat2[i]=1.0;
coml[i]=i^1;
comr[i]=i^1;
for(j=0;j<m;++j){
scanf("%d",&k);
mat[i][j]=(k+0.0)/100;
}
}
for(i=1;i<=n;++i){
u=1<<i;
t=(ubit>>(i+1))<<(i+1);
for(j=0;j<m;++j){
mat3[j]=0.0;
for(k=coml[j];k<=comr[j];++k){
mat3[j]+=mat2[k]*mat[j][k];
}
mat3[j]*=mat2[j];
l=coml[j]&t;
if(u&coml[j]){
coml[j]=l;
comr[j]=l+u-1;
}else{
l|=u;
coml[j]=l;
comr[j]=l+u-1;
}
}
for(j=0;j<m;++j){
mat2[j]=mat3[j];
}
}
ma=mat2[0];
for(i=1;i<m;++i){
if(mat2[i]>ma){
ma=mat2[i];
man=i;
}
}
printf("%d\n",man+1);
return 0;
}
T2
差分约束系统。。。调得我快Shit了(然后。。我会告诉你我还没过么?)
上 代码。
#include <cstdio>
#include <cstring>
#define lowbit(x) (x&-x)
int next[40000],to[40000],f[40000],len[40000],head[40000],hl,i,j,k,h;
int ip,a,b,c,pp[40000],ppl,n;
inline void addEdge(int f,int t,int w){
++hl;
next[hl]=head[f];
to[hl]=t;
len[hl]=w;
head[f]=hl;
}
int q[400000],qt,qh;
bool iq[40000];
void spfa(){
memset(f,0x7f,sizeof f);
qh=0;
qt=1;
iq[n+1]=1;
q[0]=n+1;
f[n+1]=0;
while(qh!=qt){
a=q[qh];
//printf("( %d ):#%d\n",qh,a);
iq[a]=0;
for(b=head[a];b!=0;b=next[b]){
//printf("Access #%d: pre dist %d , suf dist %d\n",to[b],f[to[b]],f[a]+len[b]);
if(f[a]+len[b]<f[to[b]]){
//printf("Relax #%d\n",to[b]);
f[to[b]]=f[a]+len[b];
if(!iq[to[b]]){
iq[to[b]]=true;
q[qt++]=to[b];
}
}
}
++qh;
}
}
int main(){
freopen("trees.in","r",stdin);
freopen("trees.out","w",stdout);
scanf("%d%d",&n,&h);
//printf("1 \n");
for(i=0;i<h;++i){
scanf("%d%d%d",&a,&b,&c);
addEdge(b,a-1,-c);
}
//printf("2 ");
for(i=0;i<=n;++i) addEdge(n+1,i,0);
for(i=0;i<n;++i){
addEdge(i,i+1,1);
addEdge(i+1,i,0);
}
spfa();
a=0x7fffffff;
for(i=0;i<=n;++i) if(f[i]<a) a=f[i];
for(i=0;i<=n;++i) f[i]-=a;
printf("%d\n",f[n]);
return 0;
}
T3
一道机智的二分题目
先二分答案,再用DP检测答案是否可以。符合单调性(废话)。
DP方程:
$F\left[ i,j\right] =max \left\{\left\lfloor \frac{s-k\cdot a_i}{b_i} \right\rfloor +F\left[ i-1,j-k\right] \forall k \in \left[ 0,min\left\{ \left\lfloor \frac{s}{a_i} \right\rfloor ,j \right\}\right]\right\}$
//上代码
#include <cstdio>
#include <cstring>
int n,m,i,j,k,l,r,ans,mid,t;
int p[1000][2],f[2][1000];
int now,pp,t2;
bool dp(int s){
memset(f,-1,sizeof f);
now=0,pp=1;
f[0][0]=0;
for(i=0;i<n;++i){
now = pp^now;
pp = pp^now;
now = pp^now;
for(j=0;j<=m;++j){
t=s/p[i][0];
t=t<j?t:j;
for(k=0;k<=t;++k){
if(f[pp][j-k]!=-1){
t2=(s-k*p[i][0])/p[i][1]+f[pp][j-k];
f[now][j]=(f[now][j]<t2?t2:f[now][j]);
}
}
}
}
return f[now][m]>=m;
}
int main(){
freopen("software.in","r",stdin);
freopen("software.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=0;i<n;++i){
scanf("%d%d",p[i],p[i]+1);
}
l=0,r=0x7fffffff;
while(l<=r){
if(dp(mid=(l+r)/2)){
ans=mid;
r=mid-1;
}else{
l=mid+1;
}
}
printf("%d\n",ans);
return 0;
}
2模02day1题解的更多相关文章
- [18/12/3]蓝桥杯 练习系统 入门级别 Fibonacci数列求模问题 题解思路
前言略. 看到这个题目本来应该很高兴的,因为什么,因为太TM的基础了啊! 可是当你用常规方法尝试提交OJ时你会发现..hhh...运行超时..(开心地摇起了呆毛 //Fibonacci数列递归一般问题 ...
- 二模Day2题解
小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...
- 二模02day1解题报告
T1.淘汰赛制 比赛时的淘汰赛制,给出每两个球队比赛的胜率,求出最终胜率最高的队伍. 这题的概率真的很难算啊感觉...一开始打的代码打下来就是用f[i][j]表示i场比赛后第j人还在场的概率.不难看出 ...
- Codeforces Round #260 (Div. 2) A B C 水 找规律(大数对小数取模) dp
A. Laptops time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- ZJOI2019 Day1 题解
想要继续向前,就从克服内心的恐惧开始. 麻将 题意 在麻将中,我们称点数连续的三张牌或三张点数一样的成为面子,称两张点数一样的牌为对子.一副十四张麻将牌的胡牌条件是可以分成四个面子和一个对子或者分成七 ...
- BUPT2017 wintertraining(15) #1 题解
拖了一周才完成的题解,抛出一个可爱的表情 (っ'-')╮ =͟͟͞͞❤️.对我来说E.F比较难,都是线段树的题,有点久没写了. A - Infinite Sequence CodeForces - 6 ...
- 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)
终于打了一场CF,不知道为什么我会去打00:05的CF比赛…… 不管怎么样,这次打的很好!拿到了Div. 2选手中的第一名,成功上紫! 以后还要再接再厉! [A]Check the string 题意 ...
- CF1139D Steps to One 题解【莫比乌斯反演】【枚举】【DP】
反演套 DP 的好题(不用反演貌似也能做 Description Vivek initially has an empty array \(a\) and some integer constant ...
- OI队测题解:
Test 17 T1: 题目大意: 喵星系有n个星球,标号为1到n,星球以及星球间的航线形成一棵树. 所有星球间的双向航线的长度都为1.小昕要在若干个星球建矿石仓库,设立每个仓库的费用为K.对于未 ...
随机推荐
- Bootstrap3.0学习第二十二轮(JavaScript插件——弹出框)
详情请查看http://aehyok.com/Blog/Detail/28.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...
- JavaScript基础---语言基础(1)
写在前面: 通过四篇博客把JS基础中的基础整理一下,方便自己查阅,这些内容对于实际项目开发中也许并不会在意,但是作为JS的语言基础,自觉还是应该熟悉.在完成这三篇博客(JavaScript基础---语 ...
- DOM(二)使用DOM
在了解DOM(文本对象模型)的框架和节点后,最重要的是使用这些节点处理html网页 对于一个DOM节点node,都有一系列的属性和方法可以使用.常用的有下表. 完善:http://www.w3scho ...
- GDI+中发生一般性错误的解决办法(转帖)
今天在开发.net引用程序中,需要System.Drawing.Image.Save 创建图片,debug的时候程序一切正常,可是发布到IIS后缺提示出现“GDI+中发生一般性错误”的异常.于是开始“ ...
- jquery 的 sort 函数
members = [45, 23, 12, 34];members = members.sort(function(a, b){return a-b; );这里面a-b为升序,b-a降序排列:但a, ...
- Rdesktop
linux远程windows rdesktop是一个开放源码的Window NT中断服务器的客户端,它实现了远程桌面协议(RDP) rdesktop-1.7.0.tar 下载地址:http://d ...
- 【codevs1200】 NOIP2012—同余方程
codevs.cn/problem/1200/ (题目链接) 题意 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. Solution 这道题其实就是求${a~mod~b}$的逆元 ...
- bzoj3037 创世纪
两种解法: 一.树状DP /*by SilverN*/ #include<iostream> #include<algorithm> #include<cstring&g ...
- ECSHOP Inject PHPCode Into \library\myship.php Via \admin\template.php && \includes\cls_template.php Vul Tag_PHP_Code Execute Getshell
目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 PHP语言作为开源社区的一员,提供了各种模板引擎,如FastTemplate,Sm ...
- MVC模式介绍
MVC是一种通过3个不同部分构造一个软件或组件的理想办法: 1.模型(Model):用于存储数据的对象. 2.视图(View):为模型提供数据显示的对象. 控制器(Controller):负责具体的业 ...