我是靠谱客的博主 寒冷手套,最近开发中收集的这篇文章主要介绍CSP-J 2019游记+题解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


游记区

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游记+题解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部