源文件在我的网盘上。链接: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题解的更多相关文章

  1. [18/12/3]蓝桥杯 练习系统 入门级别 Fibonacci数列求模问题 题解思路

    前言略. 看到这个题目本来应该很高兴的,因为什么,因为太TM的基础了啊! 可是当你用常规方法尝试提交OJ时你会发现..hhh...运行超时..(开心地摇起了呆毛 //Fibonacci数列递归一般问题 ...

  2. 二模Day2题解

    小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...

  3. 二模02day1解题报告

    T1.淘汰赛制 比赛时的淘汰赛制,给出每两个球队比赛的胜率,求出最终胜率最高的队伍. 这题的概率真的很难算啊感觉...一开始打的代码打下来就是用f[i][j]表示i场比赛后第j人还在场的概率.不难看出 ...

  4. 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 ...

  5. ZJOI2019 Day1 题解

    想要继续向前,就从克服内心的恐惧开始. 麻将 题意 在麻将中,我们称点数连续的三张牌或三张点数一样的成为面子,称两张点数一样的牌为对子.一副十四张麻将牌的胡牌条件是可以分成四个面子和一个对子或者分成七 ...

  6. BUPT2017 wintertraining(15) #1 题解

    拖了一周才完成的题解,抛出一个可爱的表情 (っ'-')╮ =͟͟͞͞❤️.对我来说E.F比较难,都是线段树的题,有点久没写了. A - Infinite Sequence CodeForces - 6 ...

  7. 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)

    终于打了一场CF,不知道为什么我会去打00:05的CF比赛…… 不管怎么样,这次打的很好!拿到了Div. 2选手中的第一名,成功上紫! 以后还要再接再厉! [A]Check the string 题意 ...

  8. CF1139D Steps to One 题解【莫比乌斯反演】【枚举】【DP】

    反演套 DP 的好题(不用反演貌似也能做 Description Vivek initially has an empty array \(a\) and some integer constant ...

  9. OI队测题解:

    Test 17   T1: 题目大意: 喵星系有n个星球,标号为1到n,星球以及星球间的航线形成一棵树. 所有星球间的双向航线的长度都为1.小昕要在若干个星球建矿石仓库,设立每个仓库的费用为K.对于未 ...

随机推荐

  1. SQL删除重复的记录(只保留一条)

    首先新建表: --创建示例表 CREATE TABLE t ( id ,) PRIMARY KEY, a ), b ) ) --插入数据 INSERT INTO t SELECT 'aa','bb' ...

  2. HDU 5976 Detachment 打表找规律

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5976 Detachment Time Limit: 4000/2000 MS (Java/Other ...

  3. TortoiseSVN客户端如何更改新的URL

    问题: 我们的服务器换了新的URL地址,这时候我们本地的SVN访问帐号和地址就要重新定义了. 解决步骤: 1:重新定义SVN的URL,右键(TortoiseSVN) → Relocate → 输入你新 ...

  4. [NOIP2011] 提高组 洛谷P1315 观光公交

    题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1号景点,随后依次前往 2 ...

  5. P1391 走廊泼水节

    时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景  话说,中中带领的OIER们打算举行一次冬季泼水节,当然这是要秘密进行的,绝对不可以让中中知道.不过中中可是老 ...

  6. c++内存分配(new和delete)

    c中malloc和free是函数,包含在stdlib.h头文件中,分配成功返回指针,失败返回空指针. 与new的区别是: 1,malloc与free是C++/C语言的标准库函数,new/delete是 ...

  7. list的使用命令 百度经验保存

    在key对应的list的头部添加字符串元素 命令:lpush               #参数0 到-1  是从开始到结束 2 在key对应list的尾部添加字符串元素: 命令:rpush 3 在k ...

  8. Socket入门-获取服务器时间实例

    daytimetcpsrv.c #include <stdio.h> #include <string.h> #include <stdlib.h> #includ ...

  9. 使用I/O 系统调用--copy.c

    作为Linux/Unix 系统编程入门,小生按照自己可以理解的方式,改写了源copy.c源代码来自:Linux/UNIX 系统编程手册 上册 P57 #include <stdio.h>/ ...

  10. CSS 仿Excel表格功能

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...