- 博客(16)
- 收藏
- 关注
原创 编程除法时的上下取整问题
取整问题编程中除法默认会下取整⌊c/d⌋。但是某些问题中(比如:不等式),当除法后为负数时进行的是上取整⌈c/d⌉操作,这就不符合了。LL accurateFloor(LL a,LL b) // a/b下取整 a/b为负数时将上取整改为下取整{ LL val=a/b; while(val*b>a) val--; return val;}-3/2=-1;accurate(-3,2)=-2;相关题目:CF:1622C...
2021-12-29 18:05:56
370
原创 组合数算法
组合数算法{ vector<int&
2021-04-03 16:34:29
217
原创 课设:链表应用
主要熟悉链表的创建、插入(头插和尾插)、删除。遍历操作#include <iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;const int N=220; typedef struct node{ int number; //编号 char name[40]; //姓名 char tel[40]
2020-12-15 11:47:55
245
原创 课设:景点信息(图应用)
主要算法为Dijstra求最短路和pre数组路径还原#include <iostream> //已过#include<cstring>#include<algorithm>#include<vector>using namespace std;#define INF 0x3f3f3f3fconst int N=25;struct Spot //景点{ string scenicname; //景点名称 string
2020-12-15 11:44:35
189
原创 哈夫曼树的构建代码
哈夫曼树的构建代码输入一个字符串,构建相应的哈夫曼树,输出WPL。#include <iostream>#include<cstdio>#include<cstring>#include<stdlib.h>using namespace std;#define INF 0x3f3f3f3fconst int N=1010;typedef struct //HuffmanTree{ int weight;
2020-12-15 11:40:21
1586
原创 堆栈模拟队列
堆栈模拟队列设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数:int IsFull(Stack S):判断堆栈S是否已满,返回1或0;int IsEmpty (Stack S ):判断堆栈S是否为空,返回1或0;void Push(Stack S, ElementType item ):将元素item压入堆栈S;ElementType Pop(Stack S ):删除并返回S的栈顶元素。实现队列的操作,即入队void AddQ
2020-11-15 19:33:51
920
原创 codeforces:1332B. Composite Coloring
原题链接1332B题意:给一组数标号,任意两个数的gcd>1时就能够标记相同的数字,剩余的只能单独标记,最后输出有多少个不同的标记和每个数的标记。本来想的是 如果两个数的gcd>1就把他们做上标记,再来一个数时就和组里的数依次判断,看是否gcd都>1,再考虑标记,这样就有了很多不同的标记,最后依次输出,但感觉有点麻烦又难实现,得挨个判断肯定超时。总之就是围绕着gcd写的,没有抓住本质。其实判断他们能不能染成相同的数字只需要判断其最小质因子是否相同即可,并且都是合数。一个数学知识
2020-11-01 15:58:26
193
原创 L2-024部落(并查集)
部落#include <iostream>#include<cstdio>#include<cstring>#include<set>using namespace std;#define INF 0x3f3f3f3f;const int N=10010;int par[N];int ranks[N];int peo[N];int inde[N];int num;void init(){ for(int i=1;i<
2020-10-08 23:10:20
175
原创 字符串知识
字符串知识一.字符串类型1.“ ”引号之间的字符串2.char 数组(均以null’\0‘结尾) 字符数组的大小要比所存储的字符多13.封装的字符串类string二.字符串的输入输出1.C语言中的scanf %c用于单个字符 ,%s用于字符数组以空格换行表示结束 printf2.getchar() putchar() 输入输出字符3.gets() puts() gets输入字符以空格换行结束 puts()括号输出内容4.cin.getline() get
2020-10-02 09:44:29
1247
原创 栈:最优屏障
最优屏障链接: link.M国的地势高低不平,现给出一个数组代表此国家某纬度上均匀分布的N座山的海拔高度Hi,已知每座山的山顶上都有一座哨塔,若两个哨兵分别位于第i、j(i<j)座山上,当且仅当两人所在的山比两人之间所有的山都高时,这两个哨兵可以相互监视,M国的防守能力大小为相互监视的哨兵对数。H国早已对M国虎视眈眈,H国的皇帝希望黑魔法师们可以在M国的某两座山之间放置一块巨大的屏障,M国的哨兵不可通过该屏障互相监视。皇帝想让你告诉他最优的屏障放置位置,你是皇帝手下最信任的军师,现在需要你帮助皇帝
2020-08-16 12:12:43
281
原创 Treepath
Treepath#include<iostream>#include<algorithm>#include<vector>using namespace std;const int N = 1e5+10;typedef long long ll;#define INF 0x3f3f3f;vector<int>G[N];int ans,f,cnt;void dfs(int s,int pre,int flag){ if (flag &a
2020-08-07 14:19:49
241
原创 Zut_round 12(简单数论)
C素数筛 埃式筛题意:给n个数,给出m组l,r.设i为l-r之间的一个质数,这个质数能被n个数中的x个数整除,令f(i)=x.求l-r区间中所有f(i)的总和.
2020-07-06 12:03:20
210
原创 Zut_round 8(多维dp1)
A -编辑距离将一个字符串通过增删改多个字符变成另一个字符串求最少修改次数#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int N = 1010;int dp[N][N];char s[N], t[N];int main() {...
2020-04-29 19:04:04
165
原创 Zut_round 6(线性一维dp)
DPA题--最长上升子序列B题--一维线性dp ++C题 --Frog JumpingD题--Disturbed PeopleA题–最长上升子序列最长上升子序列模板题状态表示:集合:以每个数字为上升末尾的有限集属性:Max状态计算:dp[i]=dp[j]+a[i]>a[j]?1:0;AC代码:#include<iostream>#include<algori...
2020-04-18 21:48:58
221
原创 DP背包问题模板
DP:背包问题模板01背包问题暴力写法(朴素写法)空间优化后的代码完全背包问题01背包问题有N件物品和一个容量为V的背包,每件物品只能使用一次第i件物品的体积是v[i],价值是w[i]。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大,输出最大价值。数据范围:n,m,v[i],w[i]<=1000代码如下:暴力写法(朴素写法)//01背包模板#inc...
2020-04-08 17:31:53
422
原创 KMP模板
题目:子串给出一个正整数n,我们把1…n在k进制下的表示连起来记为s(n,k),例如s(16,16)=123456789ABCDEF10,s(5,2)=11011100101。现在对于给定的n和字符串t,我们想知道是否存在一个k(2 ≤ k ≤ 16),使得t是s(n,k)的子串。第一行一个整数n(1 ≤ n ≤ 50,000)。第二行一个字符串t(长度 ≤ 1,000,000)“yes...
2020-04-08 17:30:13
193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人