- 博客(13)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 Good String (思维)
题目链接:Click swap 函数的利用 暴力遍历 #include<iostream> #include<string> #include<algorithm> using namespace std; string s; int solve(const string &s, int x,int y){ int res=0; for(auto c:s) if(c-'0'==x){ res++; swap(x,y); } if(x!=y
2020-07-31 23:28:56 202
原创 C. Uncle Bogdan and Country Happiness(树+dfs)
题目链接:Click 利用vector数组储存结点之间联系 (相当于邻接表) 关系 g[father]>=g[son] (g[N]储存开心人的数目) dfs()的实现 #include<iostream> #include<vector> #include<algorithm> using namespace std; const int N=1e5+7; vector<int> gr[N]; //储存结点之...
2020-07-31 17:54:04 156
转载 1389B - Array Walk(思维)
不知道怎样实现 从1~k sum+=a[i]来记录和 实现找到相邻最大的两个和 求最多反复在最大两个值之间来回几次 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int N=1e5+5; int a[N]; int main(){ int t,n,k,z; scanf("%d",&t); while(t--){ scan...
2020-07-31 11:22:52 287
转载 (带权并查集)Cube Stacking
题目链接:Cube Stacking(带权并查集) 递归 /* 带权并查集*/ #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define N 30010 #define M 30000 //把根节点定为每个堆下方的点,f[x]是与x相连下方的点 int f[N]; int height[N];//每个节点下
2020-07-29 11:39:51 196
原创 physics practical
函数名:freopen 声明:FILE *freopen( const char *path, const char *mode, FILE *stream ); 所在文件: stdio.h 参数说明: path: 文件名,用于存储输入输出的自定义文件名。 mode: 文件打开的模式。和fopen中的模式(如r-只读, w-写)相同。 stream: 一个文件,通常使用标准流文件。 返回值:成功,则返回一个path所指定文件的指针;失败,返回NULL。
2020-07-19 23:28:14 273
转载 局部变量与全局变量(静态变量)默认值区别
对于数据类型 : 定义全局变量或者静态变量,未初始化的默认值为0. 定义局部变量,为以前残留在堆栈里的随机值。 原出处
2020-07-16 00:35:47 909
原创 kmp模板及例题
获取next数组 子串与母串的匹配 void GetNext(){ //获取一个串的next数组 int i=0,j=-1; nextj[0]=-1; while(i<len){ if(j==-1||substr[i]==substr[j]){ //对于子串 i++; j++; nextj[i]=j; } else j=nextj[j]; } } void kmp(){ int i=0,j=0; while(i<len){ ...
2020-07-16 00:30:29 115
原创 size()是unsigned_int 的陷阱
由于size()是无符号类型的不要拿负数和它比较 例如: string a="ababbabbab"; bool ans= -1>a; cout<<ans; 输出:true
2020-07-15 16:27:26 273
原创 Booking(双指针)
题目:瓦莱拉(Valera)有空的时候,他去图书馆看书。 今天,他有免费的阅读时间。 这就是为什么瓦莱拉(Valera)在图书馆里拿了n本书,并且他为每一本书估计了他将需要阅读的时间。 让我们用1到n之间的整数对书籍进行编号。 瓦莱拉(Valera)需要几分钟的时间才能阅读第i本书。瓦莱拉决定选择一本编号为i的任意书籍,并从这本书开始一本一本地阅读。 换句话说,他将首先阅读书号i,然后阅读书号i + 1,然后阅读书号i + 2,依此类推。 他继续这个过程,直到他用完了空闲时间或读完了第n本书。 瓦莱拉(Va
2020-07-13 23:31:58 201
原创 并查集模板
三个基础函数 void init(){ //初始化并查集 for(int i=1;i<=n;i++){ fa[i]=i; } } void get(int x){ //查找返回根节点 if(fa[i]==i) return i; return get(fa[i]); } void merge(int x, int y){ //将两元素合并为一个集合 ...
2020-07-13 23:04:39 71
原创 二分查找算法模板
查找边界 单调性 例:查找 “00001111111”为例,分别查找‘0’和‘1’的边界 查找最右端‘0’的位置 #include<iostream> #include<string> using namespace std; int check(int l, int r,string s){ int mid; while(r>l){ mid=(l+r+1)>>1; //这里+1上取整为了防止死循环 if(s[mid]=='..
2020-07-12 09:54:52 106
原创 CF#654(Div.2)
D.Grid-00100 题目;给出一个矩阵n,和一个数字k;用0,1填充矩阵,使矩阵和为k;得出每列和和每行和;求出最大列和 与 最小列和差方与 最大行和与最小行和差方最小的和最小的的矩阵(直接看截图吧,好难描述)。输出矩阵 思路: 先将矩阵全部填为0,尽量让每行,每列的值相等,来填写 官方代码: #include<stdio.h> int main(){ int n,k,t,i,j,p,q; char res[305][305]; scanf("%d",&am
2020-07-08 00:12:35 137
原创 第一次集训赛
A - Misha and Changing Handles CodeForces - 501B 简述:CF上可以改网名,输入多个新旧网名,输出有几个人;以及他们最初的网名和最终的网名 使用map<string,string> 如何使用iterator遍历容器(可遍历任何容器) map<string,string>::iterator it=name.begin(); it->first指键值,it->second指数值 #include<map>
2020-07-08 00:12:07 106
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人