中山普及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:题目链接(才不会告诉你们下面的代码也是洛谷上弄来的) 思路:动态规划.首先,设 ...
随机推荐
- as(android studio)的初次使用
链接:https://blog.csdn.net/qq_28808627/article/details/50058805
- Arrays.asList() 踩坑
该方法是将 数组转化为list,但转换后的list集合,不支持add 和 remove 代码如下: 阅读相关: 本类演示了Arrays类中的asList方法 (1) 该方法对于基本数据类型的数组支持 ...
- Hadoop之伪分布式安装
一.Hadoop的安装模式有3种 ①单机模式:不能使用HDFS,只能使用MapReduce,所以单击模式主要用于测试MR程序. ②伪分布式模式:用多个线程模拟真实多台服务器,即模拟真实的完全分布式环境 ...
- linux理论知识点(用于考试)
ps:为其十天左右的linux培训即将结束了,未雨绸缪,为了更好的通过之后的考试,提前多看些考试题和知识点.这是在chinaunix论坛看到的一个帖子,贴来分享. 原文地址:[http://bbs.c ...
- 在centos 7中安装phpmyadmin
安装phpmyadmin数据库管理系统 //1.下载phpmyadmin包wget https://files.phpmyadmin.net/phpMyAdmin/4.7.0/phpMyAdmin-4 ...
- python3.8+PySimpleGUI+进度条代码大全
1.python3.8+PySimpleGUI+进度条大全 2.效果图: 3.代码: #导出模块 import PySimpleGUI as sg import time import inspect ...
- ROS机器人系统学习——踩坑之路
推荐学习教程:深蓝学院 机器人操作系统ROS理论与实践学习 在学习到第2讲ROS基础的分布式通信时,一直卡在这里,主机开启小海龟后,从机虽然可以通过 rostopic list 列出当前的所有topi ...
- vs2008每次build都会重新编译链接 && 项目已经过期
转自:http://blog.csdn.net/movezzzz/article/details/6816605 无外乎两种情况: 1.时间问题,所创建的文件的时间比如是:2011-09-22 09: ...
- Java中获取MongoDB连接的方法
首先是所需jar包,Maven中的配置如下: <dependency> <groupId>org.mongodb</groupId> <artifactId& ...
- kaggle赛题Digit Recognizer:利用TensorFlow搭建神经网络(附上K邻近算法模型预测)
一.前言 kaggle上有传统的手写数字识别mnist的赛题,通过分类算法,将图片数据进行识别.mnist数据集里面,包含了42000张手写数字0到9的图片,每张图片为28*28=784的像素,所以整 ...