货车运输

这是一道比较综合的题,非常的niubility(我不会做的题都niubility,QWQ),用到的知识包括图论、倍增、贪心、LCA、生成树、并查集。

  • 描述:

A国有n座城市,编号从1到n,城市之间有m条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有q辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。

石子合并

先看一道比luogu p1880简单的题目。

  • 描述:

有n堆石子排成一排,每堆石子有一定的数量,将n堆石子合并成一堆。合并的规则是每次只能合并相邻的两堆石子,合并的花费为这两堆石子的总数。石子经过n-1次合并后成为一堆,求总的最小花费和最大花费。

1 ~ n 中每位数字乘积最大的值

  • 描述:

99°是一位爱好爬山的小青年,他每次在爬山过程中都会遇到很多小猴子,小猴子们喜欢向他提这样一种问题:在1 ~ n中找一个数字m,使得m的各个数位乘积最大。99°不擅长回答这种问题,你能帮他写一个程序得到结果吗?

  • 封装so库时的写法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CC=gcc

SRCS=mylib.c

OBJS=$(SRCS:.c=.o)

EXEC=libmylib.so

start: $(OBJS)
$(CC) -o $(EXEC) $(OBJS) -shared

.c.o:
$(CC) -o $@ -c $< -fPIC

clean:
rm -rf $(OBJS)
  • 准备工作

    • main.cpp

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      #include <iostream>
      #include "a.h"

      using namespace std;
      int main()
      {
      test();
      cout << "hello world" << endl;
      return 0;
      }
    • a.h

      1
      2
      3
      4
      5
      #ifndef AH_H
      #define AH_H
      void test();

      #endif
    • a.cpp

      1
      2
      3
      4
      5
      6
      #include <stdio.h>

      void test()
      {
      printf("I am test\n");
      }