中山普及Day13——普及
又是迷之自信的说。。。估的230,考的50整,我欲上天呐!!!
T1:深渊(怕不是黑暗种族聚集地???)
思路:动归。而且是简单动归。转移方程:Fi,j=max(Fi-1,j,Fi,j,Fi-1,(j-modi+m)%m)其中i表示第i个,j表示此时的余数。
最后答案即为Fi,0。
见代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,v[],mod[],dp[][];
int main()
{
freopen("abyss.in","r",stdin);
freopen("abyss.out","w",stdout);
memset(dp,-0x3f3f3f,sizeof(dp));
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
scanf("%d",&v[i]);
mod[i]=v[i]%m;
}
dp[][]=;
for(int i=;i<=n;i++)
for(int j=;j<m;j++)
{
dp[i][j]=max(dp[i-][j],dp[i][j]);
dp[i][j]=max(dp[i][j],dp[i-][(j-mod[i]+m)%m]+v[i]);
}
printf("%d",dp[n][]);
return ;
}
好题哉!!!
T2:fight
有一只触手怪,有好多好多触手。(莫不是从诡秘之主里跑出来的)
类似这种:
每条触手上有n条绳子,那是勇士为了杀死他完成工会任务套上的。但是触手怪有一些灵智,所以每两根触手只能绑一根。现给你一种绑法,看是否可行。
思路:贪心,每次从大到小排序,把最大的向下绑好。最后看会不会多出来就可以了。
见代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int t,n,a[];
bool flag;
bool cmp(int x,int y)
{
return x>y;
}
int main()
{
freopen("fight.in","r",stdin);
freopen("fight.out","w",stdout);
scanf("%d",&t);
for(int k=;k<=t;k++)
{
flag=false;
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
sort(a+,a++n,cmp);
for(int i=;i<=n;i++)
{
int k=;
for(int j=;i+j<=n;j++)
{
if(a[i+j]>)
{
a[i+j]--;
k++;
}
if(k==a[i])
{
break;
}
}
if(k!=a[i])
{
flag=true;
break;
}
sort(a+,a++n,cmp);
}
if(flag==true)
printf("NO\n");
else
printf("YES\n");
}
return ;
}
好题哉!!!
T3:游戏机
思路:拿一个前向星存个图,然后储蓄一下左上到右下,左下到右上的路径长度,即为0或1,因为不可能再走一遍,会诞生环。
然后安心跑最短路,迪杰就可以了,可怜我不会前向星,全部爆空间。
见代码;
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,flag=,g[][],dij[];
bool book[];
char c;
void dijs()
{
dij[]=;
book[]=true;
while(flag!=n*m)
{
int minIndex=0x3f3f3f3f,minnum=;
for(int i=;i<=n*m;i++)
{
if(!book[i])
{
if(minIndex>dij[i])
{
minIndex=dij[i];
minnum=i;
}
}
}
book[minnum]=true;
flag++;
for(int i=;i<=n*m;i++)
{
if(!book[i]&&g[minnum][i]!=0x3f3f3f)
{
if(g[minnum][i]+dij[minnum]<dij[i])
dij[i]=g[minnum][i]+dij[minnum];
}
}
}
}
int main()
{
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
memset(g,0x3f3f3f,sizeof(g));
memset(dij,0x3f3f3f,sizeof(dij));
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
g[i][i]=;
for(int i=;i<n;i++)
for(int j=;j<m;j++)
{
scanf(" %c",&c);
if(int(c)==)
{
g[(i-)*m+j+][i*m+j]=;g[i*m+j][(i-)*m+j+]=;
g[(i-)*m+j][i*m+j+]=;g[i*m+j+][(i-)*m+j]=;
if(((i-)*m+j+)==&&(i*m+j)==(i*m+))
{
dij[m+]=;
} }
else
{
g[(i-)*m+j][i*m+j+]=;g[i*m+j+][(i-)*m+j]=;
g[(i-)*m+j+][i*m+j]=;g[i*m+j][(i-)*m+j+]=;
if((i-)*m+j==&&i*m+j+==i*m+)
{
dij[m+]=;
}
}
}
dijs();
printf("%d",dij[n*m]);
return ;
}
好题哉!!!
T4:拓扑排序
如题,再嵌一个中位数。这个非常复杂,这里不讲。
好题哉!!!
中山普及Day13——普及的更多相关文章
- 中山普及Day17——普及
今天换教室,本来教室多好嘛,易守难攻,结果...今天今天仅下午就被熊抄了2次,熊超真TMD不是人呐,走路连脚步声都没有. 然后,播报分数: 爆0了!!!
- 洛谷——普及练习场 普及组选手可冲刺训练,提高组选手亦可在此巩固基础。(Loading...)
简单的模拟 关卡2-1,6 道题 开始普及组的训练!所谓模拟,就是直接根据题意编写,思维难度简单. //T1 铺地毯 #include <cstdio> #define N 10005 i ...
- [Mac A]为什么国外程序员爱用 Mac?
from http://www.vpsee.com/2009/06/why-programmers-love-mac/ Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜 ...
- JAVAWEB之增删改查
青年志愿者服务网(20分) 1.项目需求: 为了适应社会主义市场经济发展的需要,推动青年志愿服务体系和多层次社会保障体系的建立和完善,促进青年健康成长,石家庄铁道大学急需建设青年志愿者服务网,推进 ...
- JavaWeb系统(增删改查、多条件查询功能)
该系统是一个简单的青年服务管理系统,主要包括了较完整的常用的增删改查以及多条件查询功能,对于初学者有很大帮助. 下面是相关的Java代码.jsp页面.以及数据库的创建和相关表的设计 java代码 首先 ...
- java程序设计课期中考试——数据库的增删改查和简单的js界面
首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...
- 中山Day10——普及
今天又是愚蠢的一天,估分230,实得110.其中T2.4不会,这里就只说题意和简要思路. 收获:scanf>>a,以及printf<<a. T1:模板题 此题相对简单,就是读入 ...
- 中山Day5——普及
今天题目真是贼难呐...才38... 收获:树状数组单个修改 树状数组区间修改 T1:旅行 题意:有n个数,问;从中取任意个数,他们的和为质数的方案数是多少?(n<=50) 暴力模拟即可,这里不 ...
- 中山Day4——普及
生活开始日益平淡了呢...今天130分. 收获:归并排序求逆序对 背包问题(01.完全.多重)(外带滚动数组优化) T1:题目链接(才不会告诉你们下面的代码也是洛谷上弄来的) 思路:动态规划.首先,设 ...
随机推荐
- Spring_第一个Spring入门案例IOC
今天我们来写我们的第一个spring 第一步 建立一个java project 第二步 添加我们的五个jar文件 第三步 在项目中建立一个com.zk.spring包 第四步 建立我们的userser ...
- 2020牛客寒假算法基础集训营3 - G. 牛牛的Link Power II(线段树)
题目链接:牛牛的Link Power II 题意:给你一个只含$0$和$1$的串,定义串的$Link$值为串中两个的$1$之间的距离的和,$(u,v)$和$(v,u)$被看认为是同一对,有$m$次操作 ...
- Sqoop的安装及常用命令
本次安装主要是为了离线分析数据清洗完成后的操作:网站日志流量分析系统之数据清洗处理(离线分析) 一.概述 1. sqoop是Apache 提供的工具,用于hdfs和关系型数据库之间数据的导入和导入 2 ...
- 使用JavaScript获取样式的属性值
1 . 在js中可以使用style属性来获取样式的属性值(只能获取内联样式的属性值) 语法格式为: HTML元素.style.样式属性; 2 . 在IE浏览器中,使用currentStyle来获取 ...
- https://www.cnblogs.com/chanshuyi/p/alibaba_review_3_level.html
https://www.cnblogs.com/chanshuyi/p/alibaba_review_3_level.html http://www.cnblogs.com/skywang12345/ ...
- EasyUI tree的三种选中状态
EasyUI中tree有三种选中状态,分别是checked(选中).unchecked(未选中).indeterminate(部分选中). 其中indeterminate状态比较特殊,主要表示只有部分 ...
- Ubuntu18 mongodb 离线安装
环境 Ubuntu 18 + mongodb 4.0.10 1.下载版本所需库 https://www.mongodb.com/download-center/community https://re ...
- !important面试汇总啊
https://www.jianshu.com/p/feab89b88d6b https://juejin.im/post/5c64d15d6fb9a049d37f9c20#heading-57
- mqtt开源服务器 EMQX ,客户端MQTTX5.0,使用指南
服务器 EMQX 官网: https://docs.emqx.io/broker/v3/cn/getstarted.html#mqtt-clients 一.安装启动 # 各平台下载https://ww ...
- Linux OS 集群 免密登录
1. ssh-keygen 生成密钥 2. ssh-copy-id 集群主机名 参考: [图文详解]linux下配置远程免密登录