`
darren_nizna
  • 浏览: 72586 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论
文章列表
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). Find the minimum element. You may assume no duplicate exists in the array.   代码: class Solution { public: int findMin(vector<int> &num) { int i ...
  这题如果没有负数和0,答案就很简单了,所有数的乘积。有负数和0就要复杂一些。 先考虑只有正数和负数而没有 0 的情况: 负数是偶数个。答案也很简单,所有数的乘积。 负数是奇数个。那就要枚举这个负数位置,将序列分成两部分,取乘积大的那部分。 然后再考虑数据中有 0 的情况,这时我们可以将整个序列以 0 进行分割成多个子序列,每个子序列的处理和情况 1 一样。   class Solution { public: int noZero(int A[], int start, int end) { // 没有 0 的子序列 in ...
1. 先写出业务对象接口及实现业务对象。   public interface Interface { public void hello(); }    这里写俩个实现。 public class InterfaceImpl implements Interface { /** * @see com.alipay.aop.BusinessInterface#hello() */ @Override public void hello() { System.out.println(&quo ...
<%@ page contentType="text/html; charset=GBK"%> <html> <head> <title>下拉列表联动</title> </head> <body bgcolor="#ffffff"> <table> <tr> <td><select name="s1" onChange="haha()"> & ...
日志文件会不断的增加,这个程序能上传这不断增加的日志文件到服务器,以便服务器分析。 #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/sendfile.h> #define SA struct sockaddr /** * 如果出现错误,程序返回 ...
#include <stdio.h> #include <stdlib.h> #include <string.h> #define min(a,b) ((a)<(b)?(a):(b)) #define max(a,b) ((a)>(b)?(a):(b)) int const N= 302; int mat[N][N], n, q, pos[N]; int dMin[9][9][N][N]; void initRMQ(){ int i, j, u, v, a, b, c, d; for( pos[0]= -1, ...
#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; int const N= 50010; int n, L; typedef long long LL; LL dp[N], sum[N], A[N], B[N]; int que[N], data[N]; /* dp[i]= min{ dp[j]+ ( s[i]- s[j]+ i- j- 1- L )^2 } 令 A[ ...
#include <cstdio> #include <cstdlib> #include <algorithm> using namespace std; #define min(a,b) ( (a)< (b)? (a): (b) ) int n, m; int const N= 400100; typedef long long LL; /* dp[i]= min{ dp[j]+ sum[i]- sum[j]+ ( i- j )* data[j+ 1] } 要求分段的序列长度不小于 m,即 i- j+ 1>= m ...
一.填空题: 1.       Char szTest[]=”12345\t\n\0abcd\0”; 则 strlen(szTest)值为____, sizeof(szTest)值为___ 2.       Int anTest[5][10]; int n1= &anTest[4]- &anTest[10], n2= &anTest[3][1]- &anTest[1][3]; 则 n1 的值为_____. 3.       Char szNum[]=”123456789”; int n= *(short*)(szNum+ 4)- *(sho ...
原题意思是求一个不超过 k 的连续序列的和的最大值。 枚举连续序列的起点 i, 然后在 [i, i+k] 区间找一个最大值,更新答案。   #include <stdio.h> #include <stdlib.h> #include <string.h> #define max(a,b) ( (a)> (b)? (a): (b) ) #define min(a,b) ( (a)< (b)? (a): (b) ) int const N= 200010; int dat[N], sum[N]; int n, nn, k ...
先求出最短路径,然后用最短路径上的边构建一个新图,在新图上求最小割。 #include <iostream> #include <queue> #include <cstdio> #include <cstdlib> #include <cstring> #include <vector> using namespace std; int const N= 1010, M= 200010; int n, m; int const inf= 0x7fffffff; int res; st ...
给你 n 个串,和 m 个病毒串。要把这 n 个串连起来来,可以重叠,但不能包含 m 个病毒串中的任意一个。求把 n 个串连起来的最小长度。 #include <iostream> #include <bitset> #include <cstdio> #include <cstdlib> #include <queue> using namespace std; int const N= 1010, M= 60010; int n, m, cnt, bit[15]; char str[N]; stru ...
给定一张有向图,每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。求: 1、 在不扩容的情况下,1到N的最大流; 2、 将1到N的最大流增加K所需的最小扩容费用。    求出最大流后,残余网络的流量不变,费用改为 0. 对原图的每一条边,对应增加一条流量为 k,费用为 w 的边,再增加一个源,源到 1 的流量为 k,费用为 0。求最小费用最大流,即为第二问答案。   #include <stdio.h> #include <stdlib.h> #include <string.h> #define min ...
判断边是否在某个最小割集中 以及 判断边是否为最小割的必需边。 在残余网络中求出强连通分量,对于不在同一强连通分量且满流的边,必然在某一最小割中。 题目链接   #include <stdio.h> #include <stdlib.h> #include <string.h> #define min(a,b) ( (a)< (b)? (a): (b) ) int const N= 4010, M= 60010; struct Edge{ int adj, flow, idx; Edge* next; }tb[M< ...
题目意思为有一棵树,对每个结点有两个值 v[i] 和 w[i],让你在这树上找一棵子树,使得 sum{ v[i] }/ sum { w[i] } 最大。二分这个答案 r ,对每个结点,重新计算一个值  t[i]= v[i]- r* w[i]。问题变成判定是否存大一棵子树,使得 t[i] 权值和大于0。 #include <iostream> #include <vector> #include <cstdio> #include <cstdlib> #include <cstring> using namespace ...
Global site tag (gtag.js) - Google Analytics