码迷,mamicode.com
首页 >  
搜索关键字:nyoj 108 士兵杀敌一    ( 1834个结果
nyoj 117 求逆序数 【树状数组】+【离散化】
这道题的解法真的很好!!! 思路:建立一个结构体包含val和id, val就是输入的数,id表示输入的顺序。然后按照val从小到大排序,如果val相等,那么就按照id排序。 如果没有逆序的话,肯定id是跟i(表示拍好后的顺序)一直一样的,如果有逆序数,那么有的i和id是不一样的。所以,利用树状数组的特性,我们可以简单的算出逆序数的个数。 如果还是不明白的话举个例子。(输入4个数) ...
分类:其他好文   时间:2014-10-09 02:25:47    阅读次数:107
nyoj 17 单调递增最长子序列
单调递增最长子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0 随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklm...
分类:其他好文   时间:2014-10-08 00:16:54    阅读次数:291
NYoj-街区最短路径问题
街区最短路径问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述一个街区有很多住户,街区的街道只能为东西、南北两种方向。 住户只可以沿着街道行走。 各个街道之间的间隔相等。 用(x,y)来表示住户坐在的街区。 例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。 现在要建一个邮局,使得各个住户到...
分类:其他好文   时间:2014-10-07 17:39:23    阅读次数:214
NYOJ 353 3D dungeon 【bfs】
题意:给你一个高L长R宽C的图形,每一个坐标都可以视为一个方格,你一次可以向上,下,左,右,前,后任一方向移动一个方格, 但是不能向有#标记的方格移动。 问:从S出发能不能到达E,如果能请输出最少的移动次数。 策略:简单的深搜。 注意:因为是求最少的移动次数,所以要从所有能到达的中选出最少的。 代码: #include #include #include #include usi...
分类:其他好文   时间:2014-10-07 15:58:53    阅读次数:134
NYOJ 116士兵杀敌(二) 树状数组
士兵杀敌(一) 数组是固定的,所以可以用一个sum数组来保存每个元素的和就行,但是不能每次都加,因为那样会超时,查询次数太多。但是这个士兵杀敌(二)就不能用那个方法来解了,因为这个是动态的,中间元素的值可能会变化,所以引出一个新的东西来。刚开始想了一下,实在是没有想到方法,就去讨论区看了看,一看好像...
分类:其他好文   时间:2014-10-07 15:23:43    阅读次数:185
nyoj 1077 小博弈 【另类巴什博奕】
分析:分析当整除(a+b)的时候肯定是后者胜利,如果余数不等于0的时候,如果余数大于b肯定是前者胜利,否则后者胜利。 代码: import java.math.*; import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner cin = new Scanner(...
分类:其他好文   时间:2014-10-06 23:57:11    阅读次数:246
nyoj 123 士兵杀敌(四)【树状数组】+【插线问点】
树状数组有两种情况:插点问线和插线问点。这道题是插线问点。 因为树状数组最简单的作用是计算1~x的和,所以给出(a, b, c),表示(a,b)区间增加c, 那我们只需要在a点原来的基础上增加c,然后在b点原来的基础上更新-c,这样我们算最终结果的时候在(a, b)之间的就是增加了c,在区间之外的就是没有增加。 代码: #include #include #define M 100000...
分类:其他好文   时间:2014-10-06 23:25:31    阅读次数:184
nyoj 228 士兵杀敌(五)【树状数组】
分析:这道题因为是更新是和询问分开的,所以我们先更新,然后在将c[i]表示成1~i之间的和,之后减一下就好了。 #include #include #define M 1000005 #define INF 10003 int c[M]; int main(){ int x, y, z, n, s, q; scanf("%d%d%d", &n, &s, &q); memset(c,...
分类:其他好文   时间:2014-10-06 22:34:51    阅读次数:158
nyoj 322 Sort 【树状数组】
这道题其实就是考试树状数组。 代码: #include #include int c[1005]; int lowbit(int x){ return x&(-x); } int getsum(int x){ int sum = 0; while(x){ sum += c[x]; x -= lowbit(x); } return sum; } void add(int ...
分类:其他好文   时间:2014-10-06 22:17:02    阅读次数:123
nyoj 47 过河 过河问题 【贪心】
经典贪心; 两种方案:一:让最快的和次最快的先过去,最快的回来,然后最慢的和次最慢的过去,次最快的回来a[0]+a[1]+a[1]+a[n-1] 二:最快的和最慢的过去,最快的回来,最快的和当前最慢的过去,最快的回来。a[0]+a[n-1]+a[0]+a[n-2] 每次取最优解。 注意:最后剩余没过的人小于等于3的时候,要特殊判断。 代码: #include #include #i...
分类:其他好文   时间:2014-10-06 21:42:11    阅读次数:194
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!