自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 问答 (4)
  • 收藏
  • 关注

原创 华容道:独辟蹊径

操作:上兵右,张下,关羽左边的兵左,关左,曹操右面的右面的兵下,曹操右面的兵右,曹右,张飞上面的兵上,张上,黄左,赵左,马左,右侧三个兵都下,曹右,左上兵右,张上,黄上,马左,马右面的兵左,右面的两个兵下,关右,曹操左侧的兵下2,张右,黄上,关羽左边的兵左,赵左,关左,右下三兵都上,马右,赵下,左侧兵下右,黄下,张左,曹左,右侧2兵上,关右,马上兵右,赵上兵右,黄右,张下,曹左上兵左,最上兵右下角的兵上,关上,下侧二兵上,马上,赵右,张下,黄下,曹下,右上二兵都左,关上,关下左兵上右,曹右,张上,黄左,马.

2021-07-30 22:01:59 476 1

原创 华容道:横刀立马

操作:左底角兵右,右底角兵左,张下,黄下,关右,中左兵上左,底中兵上二,黄右,中边兵下二,中兵左下,关左二,中兵上右,中边兵上二,黄右,中边兵右下,关下,中兵左二,中边兵左二。黄上,张上,底中兵右二,右底角兵右二,关下,中兵下左,黄左,张左,赵下二,曹右,马右,中上边兵上二,中下边兵上二,黄左,马下二,曹左,赵上二,张右,下边兵上二,右底角兵左上,关右二,黄下,马下,中兵左二,曹下,顶角兵右二,中上边兵上右,中下边兵上二,黄上二,马左,中兵左下,曹下,中右兵下左,赵左,张上二,曹右,中兵下二,顶边兵下一.

2021-07-30 20:21:07 427

原创 1~10000000里的回文质数

571110113115118119131335337338372775778779791992910301105011060111311114111242112721128211333113831139311434114741154511555116061163611656116661174711797118181184811939119891199913010330203304033070330803310

2020-09-09 18:37:43 1500

原创 题解洛谷P1074 靶形数独(c++解法)

#include<iostream>using namespace std;int suduku[10][10]={{0,0,0,0,0,0,0,0,0,0}, {0,1,1,1,2,2,2,3,3,3}, {0,1,1,1,2,2,2,3,3,3}, {0,1,1,1,2,2,2,3,3,3}, {0,4,4,4,5,5,5,6,6,6}, {0,4,4,4,5,5,5,6,6,6}, {0,4,4,4,5,5,5,6,6,6},

2020-08-12 18:00:55 385

原创 一万以内的质数

2 3 5 7 11 13 17 19 23 2931 37 41 43 47 53 59 61 67 7173 79 83 89 97 101 103

2020-07-09 15:41:55 1394 3

原创 c++大部分头文件

#include<minwindef.h>#include<queue>#include<ctype.h>#include<iostream>#include<cmath>#include<windows.h>#include<conio.h>#include<time.h>#include<string>#include<iomanip>#include <_m

2020-05-15 16:43:43 342 4

原创 题解洛谷P3406(c++解法)海底地铁

对于第i个城市,与第i+1个城市相连的是第ii段铁路。所以任意两个相邻的站点购买同种车票有且仅有一种费用,通过第i段铁路的价格,仅与在第ii个城市和第i+1个城市之间的通过次数有关。若你不是很懂这句话,可以再读一读题目。那我们不就只需要求某段铁路的通过次数不就ok了?对于每个区间,用一个循环对其所经次数+1即可。如下代码:#include <iostream>using namespace std;struct railway{ int a, b, c;};long

2020-05-13 14:19:53 359

原创 题解洛谷P5100(c++解法)[JOI 2017 Final]足球

此题带球传球控球的状态转换较为复杂,我们可以考虑 拆点 。首先我们发现最优解一定不会出现一个人重复控球(这个……很容易想到吧)分析每一个坐标可能出现的状态,分为控球和不控球两种情况而不控球又分为停留在该坐标和滚动经过该坐标两种情况而滚动又分为上下左右滚口胡完毕,总而言之就是一个坐标要拆成六个点(据说可以只拆五个点,但是六个点可能更加便于理解?)经过简单的分析,我们可以想到用p点的坐标 + k * 场地的点数来表示拆点后的图中某一个点(k为该点的状态序号),可以用x * (w + 1) + y表示

2020-05-13 12:24:32 264

原创 题解洛谷CF19A(c++解法)World Football Cup

看一下数据,n<=50,也就是可以4层暴力,基本上就是不卡常,让你直接模拟。作为一个蒟蒻,我只会瞎暴力,开始做法是把比分一个一个输进去,往死里判断,但是发现太累了。于是想到一个做法:一个字符一个字符输进去,判断已经输到了哪里 while(1){ scanf("%c",&nlong); if(nlong=='-')break; else if((nlong>='a'&&nlong<='.

2020-05-12 19:33:20 289

原创 题解洛谷P3887(c++解法)[GDOI2014]世界杯

思路:守门员单算,比较简单,剩下三种类型的拿中场说。假设你有16个中场球员,他们是:(表格纯手打)(剩下几名球员power从60到72不等) -------------- -------------- | name | power || -----------: | -----------: || 666 | 22 || god | 88 || messi | 99

2020-05-12 15:09:03 610

原创 题解洛谷P6013(c++解法)[CSGRound3]压岁钱

直接模拟就可以了注意:钱数最好用数组存起来,这样处理封印情况才会比较方便。#include <iostream>using namespace std;long long in[1000005];long long out[1000005];int main(int argc, char** argv){ int n; int i; int c; long long w, x = 0; long long m, s = 0; c

2020-05-11 14:53:51 1148

原创 题解洛谷P1161(c++解法)开灯

这题第一眼感觉好麻烦的样子呢。。但事实上还是很水的呢。。很草率暴力的模拟就行了。。。。输入的同时进行计算,并且给个bool类型的数组来统计该位置的灯是开还是关,然后最后遍历一下整个bool数组,是开着的输出就好了。时间复杂度是O(n*ti),不会超时的。#include<bits/stdc++.h>using namespace std;int n,t;long long T;double a;bool ai[2000010];int main(){ scanf("

2020-05-11 11:27:56 774

原创 题解洛谷P2392(c++解法)kkksc03考前临时抱佛脚

输入N个数,将这N个数能够分成两组,使得两组总数最接近就是本题的解法。可以用搜索,递归,也可以用01背包。由于我太弱……所以用的深搜……#include<cstdio>#include<algorithm>#include<cstring>#define MAXN 25#define MAXM 610using namespace std;int s1,s2,s3,s4;inline int read(){ int date=0,w=1;char c=

2020-05-10 22:28:19 482

原创 题解洛谷P1170(c++解法)兔八哥与猎人

题目中所求是两个整点之间是否存在其他整点根据直线在平面直角坐标系上的定义,点(x,y)在点(x1,y1)和点(x2,y2)所确定的线段上,当且仅当(x-x1):(y-y1)==(x-x2):(y-y2)=(x1-x2):(y1-y2)(范围x1<=x<=x2,y1<=y<=y2)由此,我们可以得知,两个整点之间存在其他的整点的话,必然有(x-x1):(y-y1)==(x-x2):(y-y2),因为x,y,x1,y1,x2,y2都是整数,那么(x-x1),(y-y1),(x-x2)

2020-05-10 22:26:41 523

原创 题解洛谷P4771(c++解法)八百标兵奔北坡

这是一道非常成功的题目(完全看不出是DP),于是身为蒟蒻的我就开始乱搞~~(乱搞压标算)~~ , 在被样例图示坑到后,我完成了一份成功的暴力,如下#include<iostream>#include<cstdio>#include<cstring>using namespace std;int e[1005][1005],im[1005][1005];struct node{ int x,y;}a[100005];int cnt[1005]={0}.

2020-05-10 22:11:37 321

原创 题解洛谷P1004(c++解法)方格取数

题目传送门我们做题的思路可以这样:①先看一下出题日期(毕竟是NOIP的题目,有一定的水准),然后发现是2000年的普及第四题我们要知道的是,好像比较前面的几年由于1999的数塔IOI问题后,接下来几年的最后一两题都很喜欢出DP所以,我们首先看一下题目的内容,求路径最大的方法,这时候就要想到DP或者DFS②然后我们发现题目的数据规模不大,n<=9,所以我们可以考虑用DFS或者DP都可...

2020-05-08 18:29:52 694

原创 题解洛谷P2128(c++解法)赤壁之战

思路是枚举第i艘船并判断是否与前面选的船都有铁索相连。如果都有,就把这艘船的编号放进一个数组里。最后用一个max1的数存最大值,输出max1。代码如下(▽)#include <bits/stdc++.h>//懒人喜欢的万能头文件using namespace std;int a[1000],b[5000][5000],c[10000],used[100000];//a数组存的是...

2020-05-08 17:22:33 549

原创 题解洛谷P1252(c++解法)马拉松接力赛

对于这道题,如果使用暴力的全排列来做的话,那么显然时间复杂度会妥妥的达到10^5,如果我们想要过掉所有的数据点的话,暴力排列就显得十分无力,所以我们要选择别的方法。这道题的特点在于要求最小值,因此我们可以往贪心和dp上去想,这里介绍一种贪心算法:由于每个人都需要跑,因此第一步肯定要将每一个人分配一公里,那么接下来该怎么办呢?显然无论在什么状态下,我们都要找跑这一公里最快的人来跑,因此我们只要...

2020-05-08 16:41:11 1291

原创 题解洛谷P1498(c++解法)南蛮图腾

发一个分治的题解好了。用二维字符数组存储结果,初始化全部是空格,修改需要修改的变量即可。思路:打印一个距离最左端有dist个空格,尺寸为size,最下一行在数组中height行的三角形时,如果size为1,直接存储;否则打印顶部、左下和右下的三个小三角形,具体坐标见代码。由于“\”是C++中的转义字符,可以使用char x=(char)92的方式将字符变量x赋值为“\”。代码来了#i...

2020-05-07 17:13:55 629

原创 题解洛谷P6467(c++解法)[COCI2008-2009#6]BUKA

然后,我们做题,要将这道题分为两个大if分别对应中间的符号为‘+’或者‘*’这个谁都会。先定义一些变量,做一些基本操作:string a,b;//两个输入的字符串char x;//重点,中间那个输入的字符cin>>a>>x>>b;//输入int as=a.size();//字符串a的长度int bs=b.size();//字符串b的长度if(as&...

2020-05-06 18:18:22 481

原创 题解洛谷P6244(c++解法)[USACO06OPEN]County Fair Events S

思路这道题就是活动安排(贪心裸题)其实就是求对应数轴选择尽可能多的不相交线段。于是我们想到一种贪心策略:按照每个活动的结束时间从小到大排序,每次选择最早的结束时间,于是代码:#include<bits/stdc++.h>using namespace std;struct AKIOI{ int st; int ed;}a[10010];bool cmp(AKIOI ...

2020-05-05 21:19:26 186

原创 题解洛谷P2240(c++解法)【深基12.例1】部分背包问题

千万不要被题目给误导了,这道题是贪心。所有金币都可以分开,也就是说只要按照性价比最高的取一定得到的价值最大。性价比就是这堆金币的价值除以重量。只需要把这nn堆金币按性价比排序就行了。然后依次遍历,如果背包中剩余可以拿的重量大于等于这堆金币的重量,就全拿,否则直接装满。直接装满这里注意一下整型转浮点的细节就好了。代码如下:#include<cstdio>#include&...

2020-05-05 19:03:20 537

原创 题解洛谷P6321(c++解法)[COCI2006-2007#4] SKENER

题意首先,输入四个数;前两个是报纸的行数、列数,后两个是放大镜的两个“参数”(具体后面会讲)。让后,按行数 r、列数 c 输入一个字符矩阵。这里我们就要想到:用二维数组让后,我们要按题目要求,把每一个小字符“放大”。那这里什么叫放大呢?题目解释: 把每个字符都转换成一个 zr 行 zc 列的矩阵。实际上就是:把原来的每一个字符复制zr行、复制zc列!但单个字符作矩阵输出是不现实的(...

2020-05-05 18:17:09 612

原创 题解洛谷P1968(c++解法)美元汇率

思路记录最大能达到多少马克和多少美元。每次将上次的美元数换算成马克与上一次的马克取最大值,再将上次的马克数换算成美元与上一次的美元取最大值。最后输出美元数即可。为了省空间,我没用数组,动态做的。代码如下:#include<iostream>#include<cstdio>#include<cmath>#include<cstring&g...

2020-05-04 20:37:46 1088

原创 题解洛谷P1789(c++解法)【Mc生存】插火把

思路从每一个火把或萤石为中心枚举每一个有亮光的地方,标记后统计没有标记的地方的个数即可。代码如下:#include <bits/stdc++.h> using namespace std;int n, m, k, a, b, ans;int s[5005][5005];//下面:判断是否越界 bool pd(int x, int y) { if(x <...

2020-05-04 19:18:58 1372

原创 题解洛谷P1497(c++解法)木牛流马

题目传送门思路看摆哪一些行:从 n 行里选 k行,自然就是 C(k,n) 了再看列该怎么摆:从 nn 列里选 kk 列,并与行对应(其实就是排列),共有 A(k,n)种方法。∴ 摆放的位置共有 C(k,n)*A(k,n)个考虑完位置,该看颜色了每次从 k个木牛流马中选出 ii 个涂一种颜色,都有 C(i,k) 种涂法。但是要注意涂完颜色都要从 k 里减去 i,因为这i个已经涂过颜色,...

2020-05-03 21:21:15 453

原创 题解洛谷P1496(c++解法)火烧赤壁

题目传送门读进数据之后按起点从小到大排序然后对于后一段区间直接被前一段包含的情况那被包含的区间可以直接跳过不管而只被部分包含的情况的话,就把后面的区间起点改成前一个区间终点+1然后继续算就是了代码如下#include <iostream>#include <algorithm>using namespace std;struct fire{ int...

2020-05-03 20:53:10 956

原创 题解洛谷P1003(c++解法)铺地毯

题目传送门其实这道题,我们可以有一些投机取巧,因为,是看特定的某个位置上最后一块覆盖了的地毯。所以说,你可以从最后一个输入的数据开始排查,如果说你找到了这个点上面有地毯,那么就直接输出这个值,如果没找到就按照题干的意思输出-1。#include<iostream>using namespace std; int main() { int n,x,y; int a[1000...

2020-05-03 20:02:30 593

原创 题解洛谷P1002(c++解法)过河卒

题目传送门大家看到这题一般会用搜索来做,也许调试时全过,但运行时当n、m=15时就会超时其实,本题稍加分析就能发现,要到达棋盘上的一个点,只能从左边或上面过来(以下称为左点和上点)所以,根据加法原理,到达某一点的路径数目,就等于到达其相邻的上点和左点的路径数目之和,因此我们可以使用逐列(或逐行)递推的方法来求出从起点到终点的路径数目障碍点(马的控制点)也完全适用,只要将到达该店的路径数目设...

2020-05-03 19:52:30 999

原创 题解洛谷P1001(c++解法)a+b问题

题目传送门#include<iostream>using namespace std;int main(){ int a,b;//两个数 cin>>a>>b;//输入两个数 cout<<a+b<<endl;//输出它们的和 return 0;}...

2020-05-03 19:46:41 304

原创 题解洛谷P1000(c++解法)超级玛丽游戏

题目传送门思路:直接按题目上的直接打就行#include<iostream>using namespace std;int main(){ cout << " ********" << endl; cout << " ************" << endl; c...

2020-05-03 19:41:51 593

空空如也

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

TA关注的人

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