概述
游记区
11月15日
- 上午
编程集训,复习DP等各大专题 - 下午
前往日照,5:00p.m.到达
发现没带身份证——卒×1
托朋友带来 - 晚上
CSP2019疯狂备战
11月16日
- 上午
享用酒店自助餐,前往山东外国语大学集合 - 下午
在学校里凌乱
2:00左右进入考场
T1:这太TM 水了——这道题实在是太难了,迫不得已,我必须打暴力了
T2:依然好水啊…… 等等,这题不优化会TLE啊!QAQ幸好我想到了
But:
开了一个free——卒×2
开了一个time——卒×3
ButBut————实测并没有卒
T3:停?dp吗?转移方程不会啊!T=1?骗分输出m。n=1?n=1就是傻子dp™一个
T4:DFS牛逼!!! - 晚上
赶夜路回家
游记结束
题解开始
T1:还要解释吗……
#include<cstdio>
using namespace std;
int ans,t;
int main(){
freopen("number.in","r",stdin);
freopen("number.out","w",stdout);
for(int i=0;i<8;i++){
t=getchar();
if(t=='1')ans++;
}
printf("%d",ans);
fclose(stdin);
fclose(stdout);
return 0;
}
T2:不优化的代码luogu45分
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int read(){
int t=getchar(),n=0,x=-1;
if(t-'-')n=t-'0',x=1;
while(1){t=getchar();if((t-8)/10-4)break;n=n*10+t-'0';}
return n*x;
}
struct f_t{
int t,p;
}f_[100005];
int n,type,price,t_,top,ans;
bool flag;
int main(){
freopen("transfer.in","r",stdin);
freopen("transfer.out","w",stdout);
n=read();
for(int i=0;i<n;i++){
type=read(),price=read(),t_=read();
if(!type){
f_[top].p=price,f_[top].t=t_;
top++,ans+=price;
}
else{
flag=1;
for(int i=0;i<top;i++){
if(f_[i].t>=t_-45&&f_[i].p>=price){
f_[i].p=-1;
flag=0;
break;
}
}
if(flag)ans+=price;
}
}
printf("%d",ans);
fclose(stdin);
fclose(stdout);
return 0;
}
优化 超时的不算 后的100分
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int read(){
int t=getchar(),n=0,x=-1;
if(t-'-')n=t-'0',x=1;
while(1){t=getchar();if((t-8)/10-4)break;n=n*10+t-'0';}
return n*x;
}
struct f_t{
int t,p;
}f_[100005];
int n,type,price,t_,top,les,ans;
bool flag;
int main(){
freopen("transfer.in","r",stdin);
freopen("transfer.out","w",stdout);
n=read();
for(int i=0;i<n;i++){
type=read(),price=read(),t_=read();
if(!type){
f_[top].p=price,f_[top].t=t_;
top++,ans+=price;
}
else{
flag=1;
for(int i=les;i<top;i++){
if(f_[les].t<t_-45)les++;
if(f_[i].t>=t_-45&&f_[i].p>=price){
f_[i].p=-1;
flag=0;
break;
}
}
if(flag)ans+=price;
}
}
printf("%d",ans);
fclose(stdin);
fclose(stdout);
return 0;
}
T3:QAQ本蒟蒻连个完全背包都打不出来了
把今天手里的钱当做背包的容量
把商品今天的价格当成它的消耗
把商品明天的价格当做它的价值
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int t,n,m,dp[10010],p[105][105],pro;
int read(){
int t=getchar(),n=0,x=-1;
if(t-'-')n=t-'0',x=1;
while(1){t=getchar();if((t-8)/10-4)break;n=n*10+t-'0';}
return n*x;
}
int main(){
freopen(".in","r",stdin)
freopen(".out","w",stdout)
t=read(),n=read(),m=read();
for(int i=0;i<t;i++)
for(int j=0;j<n;j++)
p[i][j]=read();
pro=m;
for(int i=0;i<t-1;i++){
memset(dp,0,sizeof(dp));
for(int j=1;j<=pro;j++)dp[j]=j;
for(int j=0;j<n;j++)
for(int k=p[i][j];k<=pro;k++)
dp[k]=max(dp[k],dp[k-p[i][j]]+p[i+1][j]);
for(int j=1;j<=pro;j++)dp[j]=max(dp[j-1],dp[j]);
pro=dp[pro];
}
printf("%d",pro);
fclose(stdin);
fclose(stdout);
return 0;
}
最后
以上就是寒冷手套为你收集整理的CSP-J 2019游记+题解的全部内容,希望文章能够帮你解决CSP-J 2019游记+题解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复