模拟
chr1st0pher
Dancer on the keyboard
展开
-
Leetcode 25. K 个一组翻转链表 (模拟)
DescriptionSolution题目要求: 常数额外空间 && 实际上的节点交换先遍历一遍链表获取链表长度,再通过一次遍历进行节点交换第二次遍历时, 将链表按 k 个一组分组, 记录下每组的第一个和最后一个本质上就是把组内节点倒过来, 把前一组的第一个节点指向该组最后一个节点即可具体实现细节见代码时间复杂度:O(N)O(N)O(N)空间复杂度:O(1)O(1)O(1)Code/** * Definition for singly-linked list. *原创 2021-01-25 21:26:29 · 86 阅读 · 0 评论 -
Leetcode 842. 将数组拆分成斐波那契序列(模拟)
DescriptionSolution当类Fibonacci数列的前两项确定时,整个序列便确定了, 故我们只需要枚举前两项,在check一下是否合法即可小模拟Codeclass Solution {public: #define inf 0x3f3f3f3f int toint(string s) { if(s.size() > 10) return -1; long long res = 0; for(int i = 0;原创 2020-12-09 15:18:39 · 74 阅读 · 0 评论 -
2020 Jiangsu CPC C. Cats(二叉树模拟)
DescriptionExamplesinput1output1input3output1 2 3Solution我们发现1最多出现一次,2最多出现2次,3最多4次…,显然i最多出现(1<<(i-1))次。我们构建一颗满二叉树,每一层的权值都为层数,以中序遍历方式依次取数,直到取到N个数为止Code#include <bits/stdc++.h>using namespace std;typedef long long ll;const int m原创 2020-12-05 13:06:22 · 261 阅读 · 0 评论 -
2020 ICPC Asia Taipei-Hsinchu Site M. Keystroke(模拟)
DescriptionSolution模拟所有情况Code#include <bits/stdc++.h>using namespace std;int main(int argc, char const *argv[]){ int T;scanf("%d",&T); while(T--) { int m,n;scanf("%d %d",&m,&n); bool r[4], c[4]; clr(r,false);clr(c,false);原创 2020-11-25 21:38:29 · 406 阅读 · 0 评论 -
2020 ICPC Asia Taipei-Hsinchu Site B. Make Numbers(模拟)
DescriptionSolution小模拟(ex)Code#include <bits/stdc++.h>using namespace std;#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1#define lc rt<<1#define rc rt<<1|1#define fi first#define se secondconst int mac=1e6+1原创 2020-11-25 21:30:31 · 387 阅读 · 0 评论 -
2018 BACS Regional Programming Contest M. TFF(数学+暴力)
DescriptionSolution数据范围很小,直接n*m暴力Code#include <bits/stdc++.h>using namespace std;const int mac=2e3+10;int a[mac],b[mac],c[mac],s[mac];int main(int argc, char const *argv[]){ int n; int t,m; scanf ("%d",&t); while (t--){ scanf ("%d原创 2020-11-17 20:13:00 · 126 阅读 · 0 评论 -
2018 BACS Regional Programming Contest C. BACS, Scoundrel Shopkeeper and Contiguous Sequence (模拟)
DescriptionSolution模拟Codeconst int maxn = 1e2 + 7;int a[maxn];int main() { int T;scanf("%d",&T); for(int cas = 1;cas <= T;++cas) { int n,m;scanf("%d %d",&m,&n); ll sum = 0; for(int i = 1;i <= n;++i) { scanf("%d",&a[i]原创 2020-11-17 19:34:05 · 144 阅读 · 0 评论 -
Codeforces 734D. Anton and Chess (暴力 + 二分)
DescriptionAnton likes to play chess. Also, he likes to do programming. That is why he decided to write the program that plays chess. However, he finds the game on 8 to 8 board to too simple, he uses an infinite one instead.The first task he faced is to原创 2020-08-01 16:06:43 · 123 阅读 · 0 评论 -
2020牛客多校(第三场) G. Operating on a Graph (链表 + 并查集)
Source2020牛客多校第三场 Problem GSolution如果用set来维护集合并暴力合并显然是不行的。但可以借助链式前向星来模拟链表,在不增加边的情况下修改head数组(该点的最后一条边)以及tail数组(该点的第一条边) 来模拟链表的合并,同时用并查集来维护所属集合即可Code#include <bits/stdc++.h>using namespace std;const int maxn = 8e5 + 7;int read() { int num =原创 2020-07-21 09:08:30 · 131 阅读 · 0 评论 -
2020 计蒜之道 预赛 第一场 B. 染色(简单)(贪心)
题目链接Solution因为简单版本中,给定的区间互不相交,所以贪心的判断即可Code#include <bits/stdc++.h>typedef long long ll;const int maxn = 3e5 + 7;ll res = 0;int n,m, w[maxn], b[maxn];bool col[maxn];int main() { scanf("%d%d",&n,&m); for(int i = 1;i <= n;++i) sc原创 2020-09-16 20:49:27 · 146 阅读 · 0 评论 -
2020 计蒜之道 预赛 第一场 A. 五子棋 (模拟)
题目链接Solution简单模拟Code#include <bits/stdc++.h>#define pii pair<int,int>#define fi first#define se secondusing namespace std;const int n = 25;int mp[n+3][n+3];char s[n+3][n+3];int cnt = 0;pii ans[(n+3)*(n+3)];bool judge(int now,int x原创 2020-09-16 20:45:42 · 111 阅读 · 0 评论 -
Codeforces 734A. Anton and Danik (模拟)
DescriptionAnton likes to play chess, and so does his friend Danik.Once they have played n games in a row. For each game it’s known who was the winner — Anton or Danik. None of the games ended with a tie.Now Anton wonders, who won more games, he or Dani原创 2020-08-01 15:57:31 · 210 阅读 · 0 评论