自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 扫雷游戏(利用最基础的C语言实现)

扫雷扫雷游戏1.菜单2.初始化棋盘3.打印棋盘4.布置雷5.排查雷6.整体效果展示7.代码分享7.1 test.c7.2 game.c7.3 game.h扫雷游戏今天我们就要设计一款这样的游戏,首先需要设置棋盘,然后对棋盘进行随机布雷,最后在排雷。1.菜单首先制作一个简易菜单int main() { int input; srand((unsigned int)time(NULL)); do { menu(); printf("请选择:\n"); scanf("%d",

2021-08-07 12:31:21 5951 19

原创 AI五子棋第一篇-利用最简单的C语言实现

一.如何实现1.说明:由于本文只是对初学C语言的人学习,所以将不会涉及任何算法,电脑将采用随机下子的方式。(后期会为大家介绍Alpha-Beta剪枝算法实现人工智能AI)2.主要部分:(1)菜单(2)打印棋盘(3)玩家下子(4)电脑下子(5)判断输赢二.实现代码及分析(1)菜单的制作运用do…while循环调用菜单,根据用户选择实现玩游戏和退出游戏(2)棋盘的初始化和打印棋盘采用标准的15*15的格子,我们可以宏定义ROW和COL分别为15和15来表示行和列。分别封装两个函数

2021-07-28 17:09:35 8055 74

原创 Educational Codeforces Round 120 (Rated for Div. 2) A ~ C

https://codeforces.com/contest/1622/problem/A题意:给定三个正整数,将其中一个数分为两个数,判断能否构成长方形。题解:枚举每种情况就行。int f[4];bool cmp(int a, int b){ return a > b;}int main(){ int t; cin >> t; while (t--) { cin >> f[0] >> f[1] >> f[2]; sor

2022-02-02 13:57:43 843

原创 Educational Codeforces Round 122 (Rated for Div. 2) A ~ D

https://codeforces.com/contest/1633/problem/A题意:通过改变最小次数得到7的倍数,每次只能改变一位。题解:只需改变各位即可,也就是枚举个位,从0到9,判断能否被7整除。int main(){ int t; cin >> t; while (t--) { int x; string res; cin >> res; x = res[0] - '0'; if (res.size() > 2) x = x

2022-02-01 15:00:54 920

原创 Codeforces Round #769 (Div. 2) A ~ C

https://codeforces.com/contest/1632/problem/A题意:给定一个字符串,由01组成,可以去掉头尾任意数量的字符,问是否可以构成长度大于1的回文串。题解:当字符串长度为1时,不能,长度为2时,若首尾不同则不能,若大于等于三,则可以。 int main(){ int t; cin >> t; while (t--) { int n; string res; cin >> n >> res; if (n

2022-01-31 21:48:12 1065

原创 Codeforces Round #768 (Div. 2) A ~ C

https://codeforces.com/contest/1631/problem/A题意:给定两个数组,可以选择任意下标i,交换ai和bi,使得a数组最大值 * b数组最大值最小。题解:将ai > bi 的移动到a数组,小于的放在b数组const int N = 110;int a[N], b[N];int main(){ int t; cin >> t; while (t--) { int n; cin >> n; int m1 = 0

2022-01-30 20:23:35 348

原创 C. Balanced Stone Heaps

https://codeforces.com/problemset/problem/1623/C题意:有n堆石子,第i堆石子有hi个石子,你可以从第3堆开始到第n堆,将d个石子移动到i - 1堆和2d个石子移动到i - 2堆,问最后最大的最小堆为多少。题解:二分!!!(代码有说明!)#include<iostream>#include<algorithm>#include<cstring>#include<queue>#include<ma

2022-01-27 11:25:24 873

原创 Codeforces Round #767 (Div. 2) A ~ D

A.https://codeforces.com/contest/1629/problem/A题意:给定n和k,以及两个数组a,b(大小为n),若k大于等于ai,则可以获得bi,问能获得的最大价值是多少。题解,贪心,先找最小的,若大于此时最小的ai,则加上bi,在找次小的。typedef pair<int, int>PII;const int N = 110;int a[N], b[N];PII c[N];int main(){ int t; cin >> t;

2022-01-23 10:29:47 328

原创 第九届“图灵杯”(12 / 13)

A.大学期末现状签到题#include<iostream>using namespace std;int main(){ int x; cin >> x; if(x >= 60) cout << "jige,haoye!" << endl; else cout << "laoshi,caicai,laolao" << endl; return 0;}B.G1024求解最早

2022-01-18 21:26:34 275

原创 Y2K Accounting Bug

Y2K Accounting BugAccounting for Computer Machinists (ACM) has sufferred from the Y2K bug and lost some vital data for preparing annual report for MS Inc.All what they remember is that MS Inc. posted a surplus or a deficit each month of 1999 and each mon

2022-01-18 21:00:15 433

原创 Surprising Strings

Surprising StringsThe D-pairs of a string of letters are the ordered pairs of letters that are distance D from each other. A string is D-unique if all of its D-pairs are different. A string is surprising if it is D-unique for every possible distance D.Co

2022-01-18 20:54:33 349

原创 Educational Codeforces Round 121 (Rated for Div. 2) (A ~ C)

A.https://codeforces.com/contest/1626/problem/A题意:给你个字符串,使得每个字母出现次数不超过两次,输出字符串,使得输出的字符串相同字母距离相同。题解:sort一下即可int main(){ int t; cin >> t; while (t--) { string s; cin >> s; sort(s.begin(), s.end()); cout << s << endl;

2022-01-17 14:10:47 555 2

原创 Codeforces Round #766 (Div. 2) (A ~ D)

A.https://codeforces.com/contest/1627/problem/A题意:选择一个黑色格子,将其同一行或者同一列染成黑色,最后询问一个坐标是否可以被染成黑色,需要几次操作。题解:首先,如果当前格子为黑色,则0次,如果不是黑色,且没有黑色格子,则输出-1,若当前格子的同一行或者同一列有黑色格子,则为1,其他情况为2。int main(){ ios::sync_with_stdio(0); cin.tie(0); cin.tie(0); int t; cin >&g

2022-01-16 11:26:12 680 2

原创 洛谷P1261服务器储存信息问题

原题链接:https://www.luogu.com.cn/problem/P1261?contestId=60077题意:找到各个服务器感兴趣的服务器的总和。a对b感兴趣的条件为:不存在rank比b大且到a的距离比b小。题解:读完题,很明显,直接对每个点跑一遍spfa或者dijkstra,在用一个ans记录答案即可。但是会tle…所以需要优化,根据rank进行优化是比较好的,因为rank数据小且与答案挂钩。rank的优化比较难想,具体证明如下:首先,需要一个数组:d[i][j],此数组表示ra

2022-01-14 14:32:42 257

原创 图的基本算法

图的基本算法bellman-ford算法dijkstra算法Floyd算法spfa算法prim算法(最小生成树)拓扑排序图的dfs和bfsbellman-ford算法#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N=510,M=10010;int dist[N],backup[N];int n,m,k;struct edge{

2021-11-20 20:06:45 1121 11

原创 C语言文件操作

1.文件的打开和关闭1.1 文件的打开#include <malloc.h>#include <stdio.h>// 主函数int main() { FILE *fp; // 文件指针 fp = fopen("input.txt","r"); // 打开文件 read/write fucntions // 读或者写函数 fclose(fp); // 关闭文件指针 return 0;}(1)用“r”方式打开的文件只能用于向计算机输入而不能用作

2021-10-08 22:01:21 603 13

原创 C语言动态内存开辟

1.malloc、free1.1 malloc的原型为:void *malloc( size_t size );1.2 malloc的用法:看下面代码:int* p=(int*)malloc(10*sizeof(int));上面代码意思是开辟10个int类型大小的空间,将其强制转换为int型,并用int类型指针接收。1.若开辟成功,则返回开辟空间的头指针。2.若开辟失败,则返回空指针。所以,用了malloc后一定要判断!如下面代码:#include<stdio.h>#

2021-10-01 10:00:06 2849 6

原创 详解C语言结构体、枚举、联合体

结构体、枚举、联合体1.什么是结构体、枚举、联合体2.定义结构体2.1 包含结构体成员变量、variable2.2 tag、结构体成员变量2.3 用结构体声名变量2.4 用typedef 创建新类型2.5 两个结构体相互包含2.6 结构体变量初始化2.7 结构体指针3.枚举3.1 定义方式3.2 为什么用枚举3.3 枚举变量的定义3.4 实例3.5 枚举实际用途4.联合体4.1 与结构体区别4.2 定义1.什么是结构体、枚举、联合体结构体(struct)是由一系列具有相同类型或不同类型的数据项构成的

2021-09-27 16:58:47 3479 11

原创 C语言常见的字符函数和字符串函数---重要!!!

1

2021-09-20 13:35:10 555 21

原创 数据在内存中的存储总结

数据在内存中的存储总结一.数据类型介绍二.类型的意义三.类型归类3.1.整型家族:3.2.浮点数家族:3.3.构造类型:四.整形在内存中的存储:4.1.原码、反码、补码4.2.先来看看整形在内存中存储的例子:4.3.这里就要引入小端存储和大端存储。4.3.1.小端存储模式:4.3.2.大端存储模式:五.浮点数在内存中的存储:5.1.E的两种特殊取值:5.1.1. E全为0:5.1.2. E全为1:一.数据类型介绍基本内置类型分别为:char //字符数据类型short

2021-08-23 17:17:56 867 4

原创 函数栈帧的创建与销毁,带你了解代码底层原理

在学习C语言时,我们难免有许多疑问例如:(1)局部变量是怎么创建的?(2)为什么局部变量的值是随机的?(3)函数是怎么传参的?传参的顺序如何?(4)形参和实参是什么关系?(5)函数调用是怎么做的?(6)函数调用结束后是怎么返回的?这些疑问其实都和函数栈帧的创建与销毁有关寄存器eax,ebx,ecx,edx,ebp,esp等都属于寄存器ebp与esp 这两个寄存器放的是地址,这两个地址用来维护函数栈帧的,每一次函数调用都要在栈区上开辟一块空间在VS2013中main函数被_.

2021-08-12 13:44:06 785 5

原创 AI五子棋第二篇-运用极大极小值算法书写AI三子棋,可拓展到五子棋(建议收藏)

前言:本文采用极大极小值算法实现AI三子棋,可拓展到五子棋,不过五子棋效率过低,建议五子棋采用Alpha-Beta剪枝算法。目录一.棋盘的初始化及打印二.玩家下棋以及判断输赢函数三.电脑下棋,AI算法的实现(重点)四.整个代码实现一.棋盘的初始化及打印首先建立一个3*3的二维数组,此处采用宏定义行和列的方式,方便以后修改为五子棋。#define ROW 3#define COL 3然后对棋盘进行初始化操作 //棋盘数组 char board[ROW][COL],ret; //初始化

2021-08-01 11:55:47 2615 11

原创 C语言之顺序表&单链表

一、顺序表的创建、删除和插入#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>struct sqlist { int date[10]; int length;};void InitList(sqlist& L) { for (int i = 0;i < 10;i++) { L.date[i] = 0; } L.length = 0;}void charu(sqlist& L) { for (i

2021-06-26 16:35:21 929 5

原创 C语言之时间复杂度&空间复杂度

时间复杂度1.算法的时间复杂度记忆方法:常对幂指阶2.一个循环结构:T(n)=O(n)循环结构中嵌套循环结构时:T(n)=O(n*n)3.顺序执行的代码只会影响常数项,可以忽略4.只需挑循环结构中某一条语句进行分析5.void loveYou(int n){ int i = 1; while (i <= n) { i *= 2; printf("love you!!"); } printf("fight!!!"); }假设循环x次分析循环可知i=2的x次方所

2021-06-24 13:51:48 3050 4

原创 HTML-2

1.无序列表ul开始,里面只能包含li<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0">

2021-06-01 17:04:36 668 5

原创 HTML-1

1.什么是HTMLHTML,全称“Hyper Text Markup Language(超文本标记语言)”,简单来说,网页就是用HTML语言制作的。HTML是一门描述性语言,是一门非常容易入门的语言。2.HTML怎样书写整个网页从开始到结束,和包含的为页头,和包含的是页身。<html> <head> <title>第一个页面</title> </head> <body>

2021-05-31 21:31:14 681 5

原创 类和对象(C语言-15)

类和对象万事万物皆可以作为对象,对象上有其属性和行为。例如:人可以作为对象,属性有身高,体重,年龄…,行为有跑步,唱歌…具有相同性质的对象,可以抽象为类1.封装1)设计一个圆类,求圆的周长class代表你要设计一个类了类后面紧跟类的名称#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>const double PI = 3.14;class circle {public: int r; double zc(){

2021-05-16 09:58:49 2022 4

原创 C语言-14(指针)

p=NULL,*p不能指向NULL4. 若有语句:int a=4,*p=&a;下面均代表地址的一组选项是: 1) a,p,&*a 2) *&a,&a,*p 3) &a,p,&*p 4) *&p,*p,&a选C,p是a的地址,不是*p,attention,别搞错了!!!...

2021-05-09 14:31:40 914 4

原创 C语言中break和continue区别

1.当它们用在循环语句的循环体时,break用于退出本层循环,而continue为结束本次循环(本次循环体内不执行continue语句后的其它语句,但下一次循环还会继续执行。)不管是 for 循环,还是 while 循环,或者是 do…while 循环,都可以用 break 跳出来,但是 break 只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹”它的最里面的那一层循环,无法一次跳出所有循环。break可用于switch语句,表示跳出整个switch语句块,而continu

2021-05-09 14:27:46 2587 4

原创 C语言-13(初识链表)

链表1.链表的定义:链表:由若干个结点组成,每个结点至少含有两个域;1)数据域:存放数据信息;2)指针域:存放下一个结点的地址;由这样的多个结点连接形成顺序存储结构。2.链表由结构体来定义链表中的节点3.链表的基本操作(1)链表创建(2)链表查找(3)链表插入(4)链表删除(5)链表输出4.单向链表结构1)链表的一个元素称为一个“结点”;2)结点中包含两部分内容,第一部分是数据内容,第二部分是指向下一个结点的指针;3)链表有一个“头指针”head,它指向链表的第一个元素;

2021-04-25 10:54:06 1643 5

原创 C语言-12(初识结构体)

初识结构体1.struct-结构体关键字 stu- 结构体标签,struct stu - 结构体类型struct stu内部相当于定义一个结构体类型。而struct stu s-创建结构体变量。#include<stdio.h>struct S{ int a; char c; char arr[20]; double d;};struct T{ char ch[10]; struct S s; char *pc;};int main(){ cha

2021-04-22 20:21:55 711 5

原创 C语言-11(初识指针)

初识指针1.指针类型决定了指针进行解引用操作符的时候,能够访问空间大小。int*p p能够访问4个字节大小charp p能够访问1个字节大小doublep *p能够访问8个字节大小2.指针 +/- 数字3.野指针(指针指向的位置是不可知的)1)局部变量指针未初始化,默认为随机值。2)3)指针指向的空间被释放4.指针需要先初始化(避免野指针)int* p=&aint* p=NULL(空指针)5.指针与数组1)数组名是首元素的地址2)而&数组名表示整

2021-04-20 20:56:39 877 4

原创 C语言-10(学习C语言的第十天)

0为假,所以不循环

2021-04-19 22:22:35 2135 9

原创 C语言-9(三子棋)

1.创建源文件test.c放入以下代码#include<stdio.h>#include"game.h"void menu(){ printf("*******************************\n"); printf("*** 1 . play 0 . exit ***\n"); printf("*******************************\n");}void game(){ char ret; char board[RO

2021-04-18 17:20:42 1298 8

原创 C语言-8-编写第一个游戏(猜数游戏)

void menu(){ printf("****************************\n"); printf("*** 1 . play 0 . exit ***\n"); printf("****************************\n");}void game(){ printf("猜数字\n");}int main(){ int input = 0; do { menu(); printf("请选择>:"); scanf("

2021-04-17 22:09:32 1669 5

原创 C语言-7(学习C语言的第七天)

数组1.一维数组#include<stdio.h>int main(){ int arr[10]; return 0;}创建一个数组,存放整型10个。[const_n]中的const_n应该是一个常量表达式。int n=5;char ch[n];这样的代码是错误的,因为n不是常量。int main(){ int arr[10]={1,2,3};//不完全初始化 return 0;}这叫不完全初始化,剩下元素默认初始化为0.#include<st

2021-04-16 12:27:54 2232 11

原创 C语言-6(学习C语言的第6天)

;不可省略

2021-04-15 21:51:13 810 5

原创 C语言-5(学习C语言的第五天)

后置:a=11,b=10前置:a=11,b=11最高位表示符号,1为负数,0为正数

2021-04-14 22:11:10 1066 5

原创 C语言-4(学习C语言的第四天)

ctrl+k+c注释 Ctrl+k+u取消注释下标排序从0开始,【4】表示第五个数

2021-04-13 16:43:20 1556 4

原创 C语言-3(学习C语言的第三天)

字符串&&转义字符字符串由双引号引起来的字符称为字符串,如"happy"。字符串的结束标志是\0。让我们来看看以下代码#include<stdio.h>int main(){ char arr1[]="abc"; char arr2[]={'a','b','c'}; printf("%s\n",arr1); printf("%s\n",arr2); return 0;}按照常理来说,arr1和arr2的结果应该相同。但输出的结果却不同,第二组后

2021-04-12 14:12:13 3061 9

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除