又是迷之自信的说。。。估的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——普及的更多相关文章

  1. 中山普及Day17——普及

    今天换教室,本来教室多好嘛,易守难攻,结果...今天今天仅下午就被熊抄了2次,熊超真TMD不是人呐,走路连脚步声都没有. 然后,播报分数: 爆0了!!!

  2. 洛谷——普及练习场 普及组选手可冲刺训练,提高组选手亦可在此巩固基础。(Loading...)

    简单的模拟 关卡2-1,6 道题 开始普及组的训练!所谓模拟,就是直接根据题意编写,思维难度简单. //T1 铺地毯 #include <cstdio> #define N 10005 i ...

  3. [Mac A]为什么国外程序员爱用 Mac?

    from http://www.vpsee.com/2009/06/why-programmers-love-mac/ Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜 ...

  4. JAVAWEB之增删改查

    青年志愿者服务网(20分)   1.项目需求: 为了适应社会主义市场经济发展的需要,推动青年志愿服务体系和多层次社会保障体系的建立和完善,促进青年健康成长,石家庄铁道大学急需建设青年志愿者服务网,推进 ...

  5. JavaWeb系统(增删改查、多条件查询功能)

    该系统是一个简单的青年服务管理系统,主要包括了较完整的常用的增删改查以及多条件查询功能,对于初学者有很大帮助. 下面是相关的Java代码.jsp页面.以及数据库的创建和相关表的设计 java代码 首先 ...

  6. java程序设计课期中考试——数据库的增删改查和简单的js界面

    首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...

  7. 中山Day10——普及

    今天又是愚蠢的一天,估分230,实得110.其中T2.4不会,这里就只说题意和简要思路. 收获:scanf>>a,以及printf<<a. T1:模板题 此题相对简单,就是读入 ...

  8. 中山Day5——普及

    今天题目真是贼难呐...才38... 收获:树状数组单个修改 树状数组区间修改 T1:旅行 题意:有n个数,问;从中取任意个数,他们的和为质数的方案数是多少?(n<=50) 暴力模拟即可,这里不 ...

  9. 中山Day4——普及

    生活开始日益平淡了呢...今天130分. 收获:归并排序求逆序对 背包问题(01.完全.多重)(外带滚动数组优化) T1:题目链接(才不会告诉你们下面的代码也是洛谷上弄来的) 思路:动态规划.首先,设 ...

随机推荐

  1. js遍历传参到html

    <p id="subp" hidden><button id= "upsub"shiro:hasPermission="sys:me ...

  2. [Linux kali] linux kali [KDE]一些软件切换输入法无效

    #开始 今天最终是在实体机安装了Kali Kali的默认桌面是GNOME桌面 但是用久了windows桌面用这个实在是不习惯 然后看到了kali有自带KDE版本的 然后就下载了一个尝尝鲜 之前在Deb ...

  3. 吴裕雄 python 人工智能——基于Mask_RCNN目标检测(2)

    import os import sys import itertools import math import logging import json import re import random ...

  4. RTU license

    Right to Use (RTU) licensing is a model in which licenses are not tied to a unique device identifier ...

  5. js兼容安卓和IOS的复制文本到剪切板

    1.在做点击按钮复制功能时遇到了小小的卡顿,此处遇到了两种系统手机的兼容性 / 复制后会对文本进行选中 / 输入法弹出 等.现将方法进行总结,如下代码很好对解决了以上问题,适用性强. 2.在文本此处使 ...

  6. Python jupuyter 的安装与使用(windows下)

    1.win+R  cmd 打开命令窗 2.pip install jupyter pip安装jupyter 3.安装好后 执行jupyter的启动命令: jupyter notebook --ip=0 ...

  7. P1028

    一开始没看懂题,看了题解才明白的 = =.思路是,先找规律,会发现有重合部分,利用这些重合部分,写出递推公式. num = 0 时,只有 1 种组合: num = 1 时,只有 1 种组合: num ...

  8. Win Oracle 监听文件配置参考

    Win lister.ora配置参考 # listener.ora Network Configuration File: C:\app\Administrator\product\\dbhome_1 ...

  9. 应用 AddressSanitizer 发现程序内存错误

    作为 C/ C++ 工程师,在开发过程中会遇到各类问题,最常见便是内存使用问题,比如,越界,泄漏.过去常用的工具是 Valgrind,但使用 Valgrind 最大问题是它会极大地降低程序运行的速度, ...

  10. $ git push -u origin master

    我们第一次推送master分支时,由于远程库是空的,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来 ...