- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 二分对有序数组进行查找
return 1;i=mid+1;elsereturn 0;int main()int n;int i,j;for(i = 0;i < n;i++){} else {return 0;
2023-05-06 01:33:15
159
原创 快排代码原理实现
排序算法的思想非常简单,在待排序的数列中,我们首先要找一个数字作为基准数(这只是个专用名词)。为了方便,我们一般选择第 1 个数字作为基准数(其实选择第几个并没有关系)。接下来我们需要把这个待排序的数列中小于基准数的元素移动到待排序的数列的左边,把大于基准数的元素移动到待排序的数列的右边。这时,左右两个分区的元素就相对有序了;接着把两个分区的元素分别按照上面两种方法继续对每个分区找出基准数,然后移动,直到各个分区只有一个数时为止。这是典型的分治思想,即分治法。
2023-05-04 00:51:20
405
原创 删除链表中重复的结点
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5数据范围:链表长度满足 0≤�≤1000 0≤n≤1000 ,链表中的值满足 1≤���≤1000 1≤val≤1000进阶:空间复杂度 �(�) O(n) ,时间复杂度 �(�) O(n)
2023-05-03 23:15:37
506
原创 c++ 实现小游戏 夺宝奇兵
#ifndef _GAME_H_ #define _GAME_H_ #include <stdlib.h> #include <string.h> #include <iomanip> #include <string> #include <Windows.h> #include <conio.h> #define N 10 ...
2018-03-24 22:11:01
1377
1
原创 大数乘法
#include <iostream> #include <stdio.h> #include <string.h> #define SIZE 200 using namespace std; char result[SIZE]; char * mul(char * input1, char * input2) { int num = 0; in...
2018-03-20 20:04:02
146
原创 C++ 通过运算符重载实现String 类简单功能
#include <iostream> #include <string.h> using namespace std; class String { public: String(const char * str = NULL) { if (NULL == str) { cout << 1 << endl; m_data =...
2018-03-16 12:32:53
354
原创 从codeforces Round#462 div2 发现的关于 stdlib.h 库函数里qsort的问题
qsort( void * base, size_t n, size_t size, _Comfun * cmp)其中base 为数组起始地址,n 为要排序的数组长度, size为数组每一个元素所占的字节数,cmp为两个数的大小关系注意: cmp 中,返回值只能为>=0 和 <0;千万不敢 将返回值写成 1 和 0举例: iint cmp (const void * a, co...
2018-02-15 16:00:15
169
原创 实现线性顺序表的增删查改功能
实现线性顺序表的增删查改功能,主要有main.h main.c list.c 三个模块函数实现。#ifndef _MAIN_H_ #define _MAIN_H_ #define SIZE 500 typedef int data_t; typedef struct { data_t data[SIZE]; int count; }LIST; enum e_List { ERROR ...
2018-02-11 23:32:10
210
原创 C语言链表(创建、删除单节点、增加单节点)
#include #include typedef struct node{ int member; struct node *link;}student;student *create(int n){ student *p,*h,*s; int i; if ((h = (student *) malloc(sizeof(student))) == NULL) { pr
2018-01-17 19:31:51
214
原创 HDU 4990 Reading comprehension
还是一道矩阵快速幂题,不过要使用的前提是要找到规律,当时没有想到,最好看到了别人的报告才明白了。 n为奇数是:ans=ans*2+1; n为偶数时 :ans=ans*2; 前几个数位 1,2,5,10,21,42,83…… 规律为 f(n)= 2 * f ( n - 2 ) + f ( n - 1 ) + 1; 构造矩阵
2014-09-11 10:00:13
738
原创 POJ 3233 Matrix Power Series
矩阵快速幂+二分求前n项和 矩阵快速幂是有模板的,多做几道题就会理解,前提是要会快速幂取模; 之所以用二分是因为求和的过程:A^1+A^2...+A^(k-1)+A^k, k是1e9的,所以暴力求和肯定会TLE,在网上找到 了二分求矩阵和的方法; 公式为 (1+A^(k/2))*(A+A^2+..+A^k/2) 的,所以可以写成二分递归,如果k为奇数的话,su
2014-09-10 22:37:34
670
原创 codeforces round #264(div2)
A题 我只想说题意很坑,一不小心就会wa,哎,不机智的我竟然在最后判题的过程中错了,少加一个判断语句。错的值了,你说呢? #include #include #include #include #include #include #include #include #include #define pi acos(-1.0) #define inf 0xfffffff #define max
2014-08-30 18:27:16
784
原创 Codeforces Round#263(Div.2)
462 A 题意读懂后就好做了,就是与一个方块上下左右相邻的‘o’的个数,如果是偶数,yes,否则,no。 #include #include #include #include #include #include #include #include #include #define pi acos(-1.0) #define inf 0xfffffff #define maxn 5000
2014-08-27 14:32:07
640
原创 codeforces round #262 (div2)
这个是前几天作的比赛,因为今晚上还有CF所以就把前几天写的东西总结一下。 460A 直接模拟题意,不过我在作的过程中一直担心余数会对结果产生影响。 #include #include using namespace std; int main() { int n,m; cin>>n>>m; for(int i=n;;i++) {
2014-08-26 13:27:18
553
原创 best coder 第六场
传说当中的best coder让我做确实感觉怪怪的,第一道wa了两发,你就知道我当时的 窘境了,哎,不提了。 就说第二题吧,我一开始是这样想的,从1到k-2全都赋值为各自的序列数,即1,2,3... 直到k-2, 然后算出前k-1项的和为beg, 前k-2项的和为beg2; 从beg开始,直到n循环,找到那个能完全开方的数 i,用n-i就是第k个数,i-
2014-08-25 15:49:59
849
原创 多校比赛第九场
hdu 4950 Monster 题意好简单,队友说要用线段树做,要不然会TLE,连树状数组也会T。我说让我试试树状数组,结果搞了一个 小时左右用树状数组给搞出来了,嘿嘿。用了树状数组区间更新。 #include #include #include #include #define maxn 100010 using namespace std;
2014-08-22 20:46:41
665
原创 多校比赛第十场
好几天没写解题报告了,每次作多校都感觉好痛苦呀,特别是当难题做不出来,连简单题都想不通的时候,哎,怎一个弱字了得呀!!!!!!!!!
2014-08-22 20:22:15
477
原创 POJ 3264 RMQ Spare Table算法
今天下午大帝讲的,我以前也不懂,所以也就跟着学学了,把中间的那个状态转移方程学错了好几次,于是就wa了 好几发。 #include #include #include #define maxn 200010 using namespace std; int a[maxn],m,n,b[maxn],fl[maxn][50],fr[maxn][50]; void solve() {
2014-08-15 20:20:42
618
原创 多校第八场
HDU 4950 Monster 小模拟题,找到判断的临界条件; #include #include #include using namespace std; __int64 h,a,b,k,sum; int main() { int i=0; while(scanf("%I64d%I64d%I64d%I64d",&h,&a,&b,&k)&&(a+
2014-08-15 09:04:18
605
原创 多校练习赛 第五场
多校第五场 A Inversion 刚看到这道题的时候就知道是归并排序了,可是当时没有掌握清楚,在网上找了些例题,感觉跟题意差太远用不 上,结果刚才仔细看了下,其实就是归并排序的模板题,哎。。悲剧呀!!!
2014-08-05 21:40:34
441
原创 hdu 1272 并查集判断树的构成
#include #include #include #define maxn 100010 using namespace std; int fa[maxn]; int mark[maxn]; int find(int x) { return fa[x]==x?x:find(fa[x]); } void Union(int a,int b) { int x=find(a);
2014-08-04 19:33:29
454
转载 转载--数论总结
一.素数打表: 1.平常打表: [cpp] view plaincopy for(i=2;i if(!s[i]) { for(j=2*i;j s[j]=1; } 2.线性打表:
2014-03-12 00:55:57
522
转载 扩展欧几里得
The Balance Time Limit: 5000ms Case Time Limit: 5000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java class name: Main Submit Status Font Size: + - Ms. Iyo K
2014-03-12 00:52:13
480
Qt 通过socket实现简易网盘的操作
2018-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人