- 博客(23)
- 收藏
- 关注
原创 1148 Werewolf - Simple Version
狼人杀,想了好久没想到什么好的写法,遂搜题解。感谢柳婼 の blog提供的题解!#include <bits/stdc++.h>using namespace std;int n;int a[105]; int main(){ scanf("%d", &n); for(int i = 1; i <= n; i ++){ scanf("%d", &a[i]); } //i, j是狼 for(int i =
2021-09-08 16:06:06
127
原创 1151 LCA in a Binary Tree
没怎么写过树,欠的还是要还的。目前看了题解是两种做法,一种是直接找,另一种是先建树再LCA(LCA用的裸查找)。直接查找a和b的最近公共祖先一定在中序遍历a的位置和中序遍历b的位置之间,而a和b的公共祖先一定在先序遍历中a和b的位置之前。在先序遍历中从0开始查找,找到的第一个中序遍历位置位于a和b之间的就是最近公共祖先。#include <iostream>#include <algorithm>#include <stdio.h>#include <
2021-09-06 21:22:51
192
原创 P4017 最大食物链计数
简单dp题单的最后一道题!从前有一个人,她想dp,后来写着写着,就写成了topo。本题这里提供两种做法,拓扑排序和DPS+DP(记忆化搜索),使用vector数组存图,一维变长。拓扑排序#include <iostream>#include <vector>#include <queue>using namespace std;// topoint n, m, ans;int in[5005], out[5005], f[5005];vector&
2021-09-03 12:06:33
118
原创 P2196 [NOIP1996 提高组] 挖地雷
两种写法,DPS or DP。DFSv[i]为点i处地雷数量,d[i][j]表示邻接矩阵,path[]记录路径。#include <iostream>using namespace std;int n, v[25], d[25][25], ans[25], path[25];int max_sum, len;int judge(int x){ for(int i = x+1; i <= n; i ++){ if(d[x][i]==1) return
2021-09-02 21:27:18
168
原创 P1464 Function
题目描述对于一个递归函数w(a,b,c):如果a≤0 or b≤0 or c≤0就返回值1;如果a>20 or b>20 or c>20就返回w(20,20,20);如果a<b并且b<c就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);其它的情况就返回w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1)。题解经典记忆化搜索,因为有重复计算,所以每次把计算结果保存下来。#include &
2021-09-02 15:48:37
131
原创 P1048 [NOIP2005 普及组] 采药
确实,很水的dp,01背包嘛。初学,还是写错啦。两种方法,二维dp和一维dp。一维dp#include <iostream>using namespace std;int t, m;int w[105], v[105];int dp[1005];int main(){ scanf("%d%d", &t, &m); dp[0] = 0; for(int i = 0; i < m; i ++){ scanf("%d%
2021-08-31 21:37:14
99
原创 P2895 [USACO08FEB]Meteor Shower S
让我来看看谁是大傻x哈!原来是我自己!(更新vis数组的时候=写成==导致TLE,debug了许久)考察:最基本的bfs,没得说。就是没有解题思维的我, 经历了WA->MLE->TLE->AC。WA是没有考虑到给的流行掉落是无序的。本来想的是开两个数组,一个存当前时间被烧焦的土地,一个存最后被烧焦的土地,如果所在位置当前时间不会被烧焦,最后也不会被烧焦,就是安全的。但菜鸡一下就MLE了,想想也是数组开多了。没思路就看了下题解,发现不需要把ash[][]这个数组只存0/1啊
2021-08-29 16:00:17
113
原创 Leetcode 1911 最大子序列交替和
题目一个下标从 0 开始的数组的 交替和 定义为 偶数 下标处元素之 和 减去 奇数 下标处元素之 和 。比方说,数组 [4,2,5,3] 的交替和为 (4 + 5) - (2 + 3) = 4 。给你一个数组 nums ,请你返回 nums 中任意子序列的 最大交替和 (子序列的下标 重新 从 0 开始编号)。一个数组的 子序列 是从原数组中删除一些元素后(也可能一个也不删除)剩余元素不改变顺序组成的数组。比方说,[2,7,4] 是 [4,2,3,7,2,1,4] 的一个子序列(加粗元素),但是
2021-07-02 19:46:21
367
原创 P1219 [USACO1.5]八皇后 Checker Challenge
菜鸡来发代码了。写这题真是命途多舛。忘记带纸笔了,所以对角线找规律就没找到,然后存了个n*n的数组来看有没有被占领,vis++和vis–。并且写的时候,vis[x][y]还写笔误了,debug了好久。写完递归才发现dfs里参数只需要行,不需要列。结果最后一个点超时了。看了题解才发现,可以用i+j表示左对角线,i-j+n表示右对角线(果然还是太菜了啊,都没有发现和相等这个问题)。修改了一下代码,AC了。#include <iostream>#include <stdlib.h&
2021-04-16 21:05:48
102
原创 HDU 哈密顿绕行世界问题
题目一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市。输入前20行的第i行有3个数,表示与第i个城市相邻的3个城市.第20行以后每行有1个数m,m<=20,m>=1.m=0退出。输出输出从第m个城市出发经过每个城市1次又回到m的所有路线,如有多条路线,按字典序输出,每行1条路线.每行首先输出是第几条路线.然后个一个: 后列出经过的城市.参看Sample output样例输入2 5 201 3 122 4 10
2021-04-15 16:26:02
130
原创 洛谷 P1075 [NOIP2012 普及组] 质因数分解
NOIP 2012 普及组 第一题,如果细想,确实很水……第一,不用挨个分解质因数;第二,不用判断素数;唯一分解定理:一个合数能且只能分解为一组素数的乘积。如果一个数是两个不同的素数的乘积,那么除了1和他本身和这两个素数外,它没有别的约数了。Tips:从小往大找要比从大往小找快。附代码:#include<bits/stdc++.h>using namespace std;int main(){ int n; cin >> n; for(int
2021-03-29 19:50:53
457
1
原创 Codeforces Round #709, Div 2, C. Basic Diplomacy
题目大意:A有n个朋友,m天假期,每天有一些朋友有空,他每天可以找一个人玩,但是每个朋友不能被选择超过⌈m/2⌉⌈m/2⌉⌈m/2⌉次,不然其他朋友会觉得被冷落QAQ~问:能不能找到这样一个方案,如果能,print YES并给出方案,不能则print NO。题解:仔细想想,其实会发现,只有当某些天只有同一个人有空,而且天数超过⌈m/2⌉⌈m/2⌉⌈m/2⌉才会没有解,其余情况均有解~比如6 21 11 11 11 11 21 2这种情况没有解~但是下面这种情况就有解6 21
2021-03-25 10:02:32
135
转载 蓝桥杯 历届试题 小计算器
问题描述模拟程序型计算器,依次输入指令,可能包含的指令有1. 数字:‘NUM X’,X为一个只包含大写字母和数字的字符串,表示一个当前进制的数 2. 运算指令:‘ADD’,‘SUB’,‘MUL’,‘DIV’,‘MOD’,分别表示加减乘,除法取商,除法取余 3. 进制转换指令:‘CHANGE K’,将当前进制转换为K进制(2≤K≤36) 4. 输出指令:‘EQUAL’,以当前进制输出结果 5. 重置指令:‘CLEAR’,清除当前数字指令按照以下规则给出: 数字,运算指令不会连续给出,
2021-03-18 00:25:36
95
原创 PAT 1141 Ranking of Institutions
考察:复杂结构体排序+map的使用说实话,,我觉得这题有点坑,菜鸡本来没有用map写,结果最后两个测试点过不去,改了map之后,发现要先用double记总分之后再转成int,不然的话最后一个测试点会答案错误。附上代码:#include <iostream>#include <cctype>#include <algorithm>#include <map>using namespace std;struct node{ string
2021-03-12 21:59:21
103
原创 PAT 1019 General Palindromic Number
签到题,进制转换。10进制转P进制。附代码:#include <iostream>#include <vector>using namespace std;int main(){ int n, b, num = 0; scanf("%d %d", &n, &b); int z[40]; do{ z[num ++] = n%b; n = n/b; }while(n != 0);
2021-03-12 19:08:50
87
原创 PAT 1027 Colors in Mars
进制转换签到题,10进制转13进制。虽然是签到题,但我还是写麻烦了。先附上自己的代码:#include <iostream>using namespace std;char ABC(int x){ if(x % 13 == 10) return 'A'; else if(x % 13 == 11) return 'B'; else if(x % 13 == 12) return 'C'; else return (x%13)+'0';}void dec_13(int
2021-03-12 16:06:24
102
原创 PAT 1154 Vertex Coloring
图的遍历#include <iostream>#include <vector>#include <set>using namespace std;struct node{ int v1; int v2;};vector<node> edges(10010);vector<int> vertex(10010);int n, m, k;bool issame(){ for(int i = 0; i &
2021-03-12 16:01:51
93
原创 PAT 1071 Speech Patterns
利用map进行字符串处理。附第一次写的代码#include <bits/stdc++.h>using namespace std;bool check(char ch){ if(ch >= 'a' && ch <= 'z') return 1; if(ch >= 'A' && ch <= 'Z') return 1; if(ch >= '0' && ch <= '9') retu
2021-03-10 15:52:22
91
原创 PAT 1152 Google Recruitment
签到题,但是需要细心一点。题目说如果质数是0023要输出0023,所以要么输出的时候记得把0补齐。附上代码#include <bits/stdc++.h>char num[1010];bool isPrime(int n){ for(int i = 2; i < sqrt(n); i ++){ if(n % i == 0) return 0; } return 1;}int main(){ int l, k; s
2021-03-09 16:50:13
121
1
原创 PAT 1153 Decode Registration Card of PAT
写了一天半,终于AC了……//菜鸡养成计划附上代码:#include<iostream>#include<stdlib.h>#include<stdio.h>#include<algorithm>using namespace std;struct node{ string card; int score;};struct node2{ int id = 0; int val = 0;};bool
2021-03-09 16:46:27
124
原创 AcWing 1230 K倍区间
题目来源AcWing 1230 K倍区间链接:https://www.acwing.com/problem/content/description/1232/题目描述给定一个长度为 NNN 的数列,A1,A2,…ANA_1,A_2,\dots A_NA1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…AjA_i,A_{i+1},\dots A_jAi,Ai+1,…Aj 之和是 KKK 的倍数,我们就称这个区间 [i,j][i,j][i,j] 是 KKK 倍区间。你能求出数列
2021-02-02 01:29:22
152
原创 关于使用Vivado在仿真时报错的问题
首先是,我电脑里有sublime,Dev,Codeblocks,并且配sublime C++环境时啥也不懂,找教程下了一个MinGW。然后问题来了。学数字逻辑,要用Vivado,结果仿真的时候出现了这个问题…ERROR: [Common 17-39] 'launch_isim' failed due to earlier errors.ERROR: [USF-XSim-62] 'elabo...
2019-04-02 20:56:39
15962
5
原创 第一篇博客——冬夜小记。
第一篇博客——冬夜小记。HDU的几道水题。自己感觉有一些小的注意点。码一下。HDU 1098其实我觉得,这是一道数学题…解题思路:数学归纳法f(x)=5x13+13x5+kax假设当x=n时,65|f(x)成立,那一定有 65|f(n+1)成立,那么65|(f(n+1)-f(n)) 成立。通过二项展开可以得到只要18+k*a可以被65整除就可以了。(PS:13、5都是质数,用二...
2019-01-11 02:43:42
250
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人