精华内容
下载资源
问答
  • #hihocoder hihocoder上的系列题解()
  • hihocoder1082

    2020-12-24 07:43:54
    hihoCoder - 1082 - 然而沼跃鱼早就看穿了一切(字符串处理)》, 一起来围观吧 https://blog.csdn.net/violet_echo_0908/article/details/47003155?utm_source=app 函数写的细节,值得学习!

    《hihoCoder - 1082 - 然而沼跃鱼早就看穿了一切(字符串处理)》, 一起来围观吧 https://blog.csdn.net/violet_echo_0908/article/details/47003155?utm_source=app
    函数写的细节,值得学习!

    展开全文
  • hihocoder195

    2019-10-01 16:13:13
    题目链接:...解题思路: 这个hihocoder上有说,就不多说了。 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 const int imax_n = 100005; 5 int n, m; ...

    题目链接: https://hihocoder.com/contest/hiho195/problem/1

    解题思路: 这个hihocoder上有说,就不多说了。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 const int imax_n = 100005;
     5 int n, m;
     6 int f[imax_n];
     7 int w[imax_n], p[imax_n];
     8 map<int, int> mp;
     9 
    10 void zeroOneBag(int weight, int value)
    11 {
    12     for (int j = m; j >= weight; --j)
    13     {
    14         f[j] = max(f[j], f[j-weight] + value);
    15     }
    16 }
    17 
    18 void completeBag(int weight, int value)
    19 {
    20     for (int j = weight; j <= m; ++j)
    21     {
    22         f[j] = max(f[j], f[j - weight] + value);
    23     }
    24 }
    25 
    26 void multiBag(int weight, int value, int z)
    27 {
    28     int k = z;
    29     int b = 1;
    30     if (k * weight >= m)
    31     {
    32         completeBag(weight, value);
    33         return ;
    34     }
    35     while (k >= b)
    36     {
    37         zeroOneBag(b*weight, b*value);
    38         k -= b;
    39         b<<=1;
    40 
    41     }
    42     if (k)
    43         zeroOneBag(k*weight, k*value);
    44 }
    45 
    46 int main()
    47 {
    48     scanf("%d%d", &n, &m);
    49     for (int i = 0; i < n; ++i)
    50     {
    51         scanf("%d%d", &w[i], &p[i]);
    52         mp[100 * w[i] + p[i]]++;
    53     }
    54     int ans = 0;
    55     memset(f, 0, sizeof(f));
    56     for (int i = 1; i <=10; ++i)
    57     {
    58         for (int j = 1; j <=10; ++j)
    59         {
    60             if (mp.find(i * 100 + j) == mp.end())
    61             {
    62                 continue;
    63             }
    64             else
    65             {
    66                 multiBag(i, j, mp[i * 100 + j]);
    67             }
    68         }
    69     }
    70     for (int i = 0; i <= m; ++i)
    71     {
    72         ans = max(ans, f[i]);
    73     }
    74     printf("%d\n", ans);
    75     return 0;
    76 }

     

    转载于:https://www.cnblogs.com/djingjing/p/8666839.html

    展开全文
  • hihocoder和leetcode hihoCoder-training This repository is a place to save the code that I solve problem in hihoCoder websit. 里面的题目来源:hihocoder、编程之美、剑指offer和LeetCode。
  • hihocoder 1654

    2019-09-30 00:20:20
    http://hihocoder.com/problemset/problem/1654?sid=1249752 思路:广搜 1 import java.util.Arrays; 2 import java.util.HashMap; 3 import java.util.LinkedList; 4 import java.util.Map; 5 import ...

    http://hihocoder.com/problemset/problem/1654?sid=1249752

    思路:广搜

     1 import java.util.Arrays;
     2 import java.util.HashMap;
     3 import java.util.LinkedList;
     4 import java.util.Map;
     5 import java.util.Queue;
     6 import java.util.Scanner;
     7 
     8 public class Main {
     9     public static void main(String[] args) {
    10         Scanner cin = new Scanner(System.in);
    11         String str[] = new String[10];
    12         for(int i = 0;i<4;i++)
    13             str[i] = cin.next();
    14         Map<String, Integer>s = new HashMap<>();
    15         String tmp =str[0]+str[1]+str[2]+str[3];
    16         char [][]str1 = new char[10][10];
    17         if(check(tmp)==1)
    18             System.out.println(0);
    19         else {
    20                 s.clear();
    21                 s.put(tmp, 0);
    22                 int [][]dir = {{1,0},{0,1},{-1,0},{0,-1}};
    23                  Queue<String>q = new LinkedList<>();
    24                  q.add(tmp);
    25                  boolean flag = false;
    26                  while(!q.isEmpty()){
    27                      tmp = q.poll();
    28                      //System.out.println(tmp.substring(0, 4)+"\n"+tmp.substring(4, 8)+"\n"+tmp.substring(8, 12)+"\n"+tmp.substring(12, 16)+"  "+"num:"+s.get(tmp));
    29                      if(check(tmp)>=1){
    30                          System.out.println(s.get(tmp));
    31                          flag = true;
    32                          break;
    33                      }
    34                      str1[0] = tmp.substring(0, 4).toCharArray();
    35                      str1[1] = tmp.substring(4,8).toCharArray();
    36                      str1[2] = tmp.substring(8, 12).toCharArray();
    37                      str1[3] = tmp.substring(12, 16).toCharArray();
    38                      for(int i = 0;i<4;i++)
    39                          for(int j = 0;j<4;j++){
    40                              if(str1[i][j]!='O'){
    41                                  for(int k = 0;k<4;k++){
    42                                      int x = i+dir[k][0];
    43                                      int y = j+dir[k][1];
    44                                      if(x>=0&&x<4&&y>=0&&y<4&&str1[x][y]=='O'){
    45                                          str1[x][y] = str1[i][j];
    46                                          str1[i][j] = 'O';
    47                                          String tmp1="";
    48                                          for(int i1 = 0;i1<4;i1++)
    49                                              for(int j1=0;j1<4;j1++)
    50                                                  tmp1+=str1[i1][j1];
    51                                          //System.out.println("tmp1:"+tmp1);
    52                                          if(!s.containsKey(tmp1)){
    53                                              s.put(tmp1, s.get(tmp)+1);
    54                                              q.add(tmp1);
    55                                          }
    56                                          str1[i][j] = str1[x][y];
    57                                          str1[x][y] ='O';
    58                                      }
    59                                  }
    60                              }
    61                          }
    62                  }
    63                  if(!flag)
    64                      System.out.println(-1);
    65         }
    66     }
    67     
    68     public static int check(String x){
    69         for(int i = 0;i<16;i+=4){
    70             if(x.charAt(0+i)==x.charAt(1+i)&&x.charAt(1+i)==x.charAt(2+i)&&x.charAt(2+i)==x.charAt(3+i)&&x.charAt(0+i)!='O')
    71                 return 1;
    72         }
    73         for(int i = 0;i<4;i++)
    74             if(x.charAt(i)==x.charAt(i+4)&&x.charAt(i)==x.charAt(i+8)&&x.charAt(i)==x.charAt(i+12)&&x.charAt(i)!='O')
    75                 return 2;
    76         if(x.charAt(0)==x.charAt(5)&&x.charAt(0)==x.charAt(10)&&x.charAt(0)==x.charAt(15)&&x.charAt(0)!='O')
    77             return 3;
    78 
    79         if(x.charAt(3)==x.charAt(6)&&x.charAt(3)==x.charAt(9)&&x.charAt(3)==x.charAt(12)&&x.charAt(3)!='O')
    80             return 4;
    81         return 0;
    82     }
    83 }

     

    转载于:https://www.cnblogs.com/Tree-dream/p/8043665.html

    展开全文
  • Hihocoder 1077

    2019-09-22 13:36:58
    Hihocoder 1077 题意 ​ 中文题。 解题思路 ​ 线段树裸题。 代码 #include<bits/stdc++.h> using namespace std; const int maxn = 1000005; int tree[maxn<<2]; void ...

    Hihocoder 1077

    题意

    ​ 中文题。

    解题思路

    ​ 线段树裸题。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 1000005;
    
    int tree[maxn<<2];
    
    void pushup(int rt)
    {
        tree[rt]=min(tree[rt<<1],tree[rt<<1|1]);
    }
    void biuld(int l,int r,int rt)
    {
        if(l==r)
        {
            scanf("%d",&tree[rt]);
            return;
        }
        int m=(l+r)>>1;
        biuld(l,m,rt<<1);
        biuld(m+1,r,rt<<1|1);
        pushup(rt);
    }
    void update(int L,int c,int l,int r,int rt)
    {
        if(l==r)
        {
            tree[rt]=c;
            return;
        }
        int m=(l+r)>>1;
        if(L<=m) update(L,c,l,m,rt<<1);
        else update(L,c,m+1,r,rt<<1|1);
        pushup(rt);
    }
    int query(int L,int R,int l,int r,int rt)
    {
        if(L<=l&&R>=r)
        {
            return tree[rt];
        }
        int m=(l+r)>>1;
        int ans=0x3f3f3f3f;
        if(L<=m) ans=min(ans,query(L,R,l,m,rt<<1));
        if(R> m) ans=min(ans,query(L,R,m+1,r,rt<<1|1));
        return ans;
    }
    int main()
    {
    //    freopen("in.txt","r",stdin);
        int n;
        scanf("%d",&n);
        biuld(1,n,1);
        int q;
        scanf("%d",&q);
        while(q--)
        {
            int l,r,o;
            scanf("%d%d%d",&o,&l,&r);
            if(!o)
                printf("%d\n",query(l,r,1,n,1));
            else
                update(l,r,1,n,1);
        }
        return 0;
    }

    转载于:https://www.cnblogs.com/RefrainLi/p/8861398.html

    展开全文
  • hihocoder 1754

    2019-10-01 16:14:22
    题目链接:https://hihocoder.com/problemset/solution/1327177 解题思路: 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 typedef long long LL; 5 const int MAXN = 100005; 6 ...
  • hihocoder 1039

    2019-09-30 00:17:57
    http://hihocoder.com/problemset/problem/1039 string (1) string& insert (size_t pos, const string& str); substring (2) string& insert (size_t pos, const string&...
  • hihocoder 1441

    2019-09-30 00:17:36
    http://hihocoder.com/problemset/problem/1441 题目:对SAM的介绍,模拟暴力实现SAM的一些功能。 思路:找出S字符串的所有的子串, 1 #include <stdio.h> 2 #include <string.h> 3 #include ...
  • hihocoder 1014

    2019-09-30 00:19:50
    http://hihocoder.com/problemset/problem/1014 构建一棵字典树,然后进行字符串匹配就可以了 这个题我本来是想用java做,但是做了后才发现有那么多的错误,java还是有待加强啊 两份代码都基本是一样的,只不过...
  • hihocoder 1664

    2019-09-30 00:20:22
    http://hihocoder.com/problemset/problem/1664 求01间隔矩阵的最大边长 思路:转移方程 dp[i][j] = min(dp[i-1][j-1],min(dp[i-1][j],dp[i][j-1])) 1 import java.math.BigInteger; 2 import java.util....
  • hihocoder1800

    2019-10-05 02:32:03
    2 Source :hihocoder1800 3 Problem :在n*m的方格中,每个格子有一个权值,求一个矩形区域面积大于等于S,总和最大 4 Solution :枚举固定的两列,然后可以求得符合条件的长度L,求一个长度大于等于L的最大和。...
  • hihocoder 1306

    2019-09-30 00:18:03
    http://hihocoder.com/problemset/problem/1306 题目不难,主要是我在这里学会了set的用法,其实set是可以根据自己的需求去排序的,这样还是很方便的 set<int,greater<int>>s; 这样就是对于int升序...
  • hihocoder 1311

    2019-09-30 00:20:01
    http://hihocoder.com/problemset/problem/1311 这个题目模拟一下即可 我们都知道,小数转换2进制的办法就是对于小数部分不断乘2然后每一位取整数部分 那么这个题目也就是转换成,它是否可以通过乘以2,取整最后...
  • (HihoCoder - 1015)From hihoCoder 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一只河蟹,于是河蟹就向小Hi和小...
  • hihocoder 1663

    2019-09-30 00:20:20
    http://hihocoder.com/problemset/problem/1663?sid=1252156 思路:双阶乘的除法可以转化为乘法 a!!/(a-2!!) = a 当a为偶数的时候 乘的尾数只有 8 6 4 2 0 也就是说最多五次后肯定会变成0 当a为奇数的时候 乘的...
  • hihocoder 1197

    2019-09-30 00:19:53
    http://hihocoder.com/problemset/problem/1197 这个题目做了还是很久。因为很多地方没看明白 1.每个语句是说以.结尾,那么.后面的语句应该就是新的一个语句了(首字母得大写) 2.每个语句,后面可能会少一个空格...
  • hihocoder 1038

    2019-09-30 00:17:58
    http://hihocoder.com/problemset/problem/1138 题意:有一些岛屿,要从第一个岛屿到第N个岛屿,求最短距离,距离为min(x,y),也就是两个点的X的差值和Y的差值的较小的。 思路:最开始我觉得应该dijstrak可以解决...
  • hihocoder 1543

    2019-09-30 00:20:03
    http://hihocoder.com/problemset/problem/1543 题目很简单,最开始想了一下前缀和然后二分查找一下,发现二分很容易找不到答案 然后想起来了$s = \frac{(m+n)*(m-n+1))}{2}$公式,但是并没有想到怎么用, 然后...
  • hihocoder 1176

    2019-04-20 01:22:00
    hihocoder 1176 题意:N,M。分别表示岛屿数量和木桥数量,一笔画 分析:欧拉路问题(给定无孤立结点图G,若存在一条路,经过图中每边一次且仅一次,该条路称为欧拉路) 欧拉路的条件 一个无向图存在欧拉路当且仅...
  • hihocoder 2.29

    2016-06-05 21:58:58
    题目链接:http://hihocoder.com/contest/msbop2015qual/problem/1#include "stdafx.h" #include #include #include using namespace std; bool Judge_year(int year) { if ((year % 4 == 0
  • hihocoder 1175

    2019-04-19 01:59:00
    hihocoder 1175 拓扑只适用于 有向无环图中,这个指的是 1.有向的,不是那种双向可走的 2.无环,并不是不存在环,而是一定要有一个没有其他点指向这个点的点, 题目大意:一个有向无环图n个点,m个边,其中随机...
  • hihocoder 1505

    2019-04-20 01:12:00
    hihocoder 1505 题意:给你n个数,让你从n个数中抽两个数,再抽两个数,使得前两个数和后两个数相等 分析:对 i,j,p,q遍历的话时间复杂度会达到o(n4),所以考虑优化p,q   假设分配给小hi的金币为a[i]和a[j],...
  • HihoCoder1684

    2018-01-15 00:46:25
    题目链接:http://hihocoder.com/problemset/problem/1684 #include using namespace std; using ll = long long ; using ld = long double ; #define ALL(X) begin(X), end(X) #define mp make_pair #...
  • hihocoder 1032

    2015-12-19 23:18:34
    题目链接:http://hihocoder.com/problemset/problem/1032 时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述  小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,...
  • hihoCoder1685

    2018-01-15 01:31:14
    题目链接:http://hihocoder.com/problemset/problem/1685 题解:先枚举上下界,压缩成一维,转化为求最长的子段和且长度小于K。先预处理前缀和t[],可转化为对于给定t[i],找到t[j]使得 t[j] - t[i-1] samin[p] ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,009
精华内容 3,603
关键字:

hihocoder