
模拟
会飞的蟋蟀
学习中!!
展开
-
luogu P1031 均分纸牌
P1031 均分纸牌描述见链接分析此题归类于模拟和贪心的,起初想用暴力模拟的,写出来非常复杂而且最后RE了非常尴尬。 后来看了看题解,就成了倒数字了,很简练有点抽象。代码大佬正确的#include<iostream>#include<cstdio>using namespace std; int a[10010];int n;...原创 2018-03-23 22:19:18 · 275 阅读 · 0 评论 -
luogu P1058 立体图
题解可以说是很烦的题目了。硬写是基本做不到的,存在遮挡的问题,人肉考虑无比繁琐,反正我是放弃了。 可行的做法是,准备好一个健全的方块,以及一个画布 (char canvas[][] ),然后一个一个画上去copy。 亮点是如果按照一定顺序画的话,后画的能恰好实现遮挡前面的。是不是很巧。Code#include <iostream>#include <cstd...原创 2018-09-11 17:35:37 · 391 阅读 · 0 评论 -
USACO 2.4.1 两只塔姆沃斯牛 The Tamworth Two
题解模拟即可。注意怎样判断不会相遇,我比较暴力直接确定一个大一点的时间超过了就break, 当然不会相遇肯定是进入了一个环,可以借此判断。Code// head files excludedusing namespace std;int n,m;int cot[11][11];int Mx[4]={-1,0,1,0};int My[4]={0,1,0,-1};int ...原创 2018-08-31 15:44:24 · 482 阅读 · 0 评论 -
USACO 2.2.4 派对灯 Party Lamps
题解这题还是比较有意思的,难在理解题意。 naive的遍历所有情况 O(4^N) 是绝对不行滴。 仔细想想,按一个按键 偶数次等于不按,按奇数次相当于按一次。所以某按钮按几次可以统统转化为按了0或1次。 再想想,按的次序有没有影响。答案是没有,模拟一下可知。 那么其实,所谓的 4^N 种 变化其实 就只有 0000~1111 这 16种而已。那么我们把这16种情况全部求出再作比较即可。...原创 2018-08-13 12:23:56 · 313 阅读 · 0 评论 -
USACO 2.2.3 循环数 Runaround Numbers
题解比较简单的模拟,注意这个环的条件比较苛刻。 感觉自己写代码还是不够仔细,没有想清楚就动手,花了好多时间debug。Code#include <iostream>#include <cstdio>#include <fstream>#include <cstring>#include <string>#inc...原创 2018-08-07 17:39:40 · 398 阅读 · 0 评论 -
USACO 2.2.1 序言页码 Preface Numbering
题解这道有点意思,本来很快写完的,被一个bug弄得怀疑人生了(结果发现是自己不仔细…)。 我的方法是 将数字转译成罗马数字,在这过程中做记录就好了。 肯定有纯数学的方法,直接递推出来,大家可以尝试一下。 大概的翻译算法为: 设给定待翻译数字为 n 1. 求出 n 最临近的区间 , 即n属于[sma, big ) // sma,big 显然是罗马数字中的基本数,要特殊处理相等情况 2...原创 2018-08-07 12:14:27 · 287 阅读 · 0 评论 -
USACO 2.1.5 海明码 Hamming Codes
题解这道题比较简单,就是暴力遍历,一个个试就可以了。 海明距离就是简单的位运算 异或一下就出来了。 代码也比较清晰了不解释。代码#include <iostream>#include <cstdio>#include <fstream>#include <cstring>#include <cstdlib>#...原创 2018-08-06 14:39:01 · 355 阅读 · 0 评论 -
luogu P1160 队列安排
题解很简单的一道链表插删操作,用stl做会超时,后来自己写了个结构模拟了一下。 小技巧:这题的删除不用真删,用个布尔表mark一下就好了ps: 还可以用树来做,中序遍历。代码#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>...原创 2018-07-22 13:54:35 · 152 阅读 · 0 评论 -
USACO 2.1.1 城堡 The Castle
题解比较有意思的一道题目。大体概念是图搜索和洪水填充。 前两个问题用dfs就可以解决,后两问遍历对所有房间,检验N和E墙即可。 思路很清楚,但写起来还是要仔细。代码/*PROG:castleID:imking022LANG:C++ */#include <iostream>#include <cstdio>#include <fs...原创 2018-07-23 14:10:59 · 654 阅读 · 0 评论 -
USACO 1.6.2 Prime Palindromes
题解这道题有点意思,原题给了提示的,没看前我是先算质数再做回文判断, 看了提示豁然开朗,先列回文数可以减少质素判断,明显是更明智的做法。 这题思路很清晰的,难点在如何不重不漏构造回文数,详见代码。代码/*PROG:pprimeID:imking022LANG:C++ */#include &amp;lt;iostream&amp;gt;#include &amp;lt;cstdio&amp;gt;...原创 2018-05-12 17:40:49 · 175 阅读 · 0 评论 -
USACO 1.5.2 Mother's Milk 母亲的牛奶
题解直观的想法是枚举出所有可行三元数组,那么用dfs深度遍历就可以了。 但是要注意怎样去重,这里用一个visit[][]二维数组表示AB两桶的奶量 (因为总量一定所以二维就够了)是否出现过。 当然还有很多方法,比如可以当成奥数题算出来…代码/*PROG:milk3ID:imking022LANG:C++ */#include <iostream>#in...原创 2018-04-23 19:31:37 · 238 阅读 · 0 评论 -
USACO 1.3.3 Name That Number 命名那个数字
解析给定数字,翻译出对应的名字,在有限的名字字典中寻找最终可用正确的名字。 这道题有多种方法,我这里介绍三种: 1. 这是我自己想出来的方法,可是TLE。想法很简单就是,翻译出所有对应的名字,然后依次考察改名字是否在字典中。 我把dict.txt处理成了map,这样在查询的时候就比较方便了。但是显然数字越长,可能情况越多。 2. luogu上看来的,直接把dict.txt处理成数字,然...原创 2018-03-26 22:02:44 · 426 阅读 · 0 评论 -
USACO 1.4.4 Combination Lock
题解很简单的一道题,不知道为什么分在贪心里,没见用到什么贪心方法。 只要遍历n^3个密码依次检测就可以了,注意这是环形密码首尾也相邻。代码/*PROG:comboID:imking022LANG:C++ */#include <iostream>#include <cstdio>#include <cstdlib>#includ...原创 2018-04-01 15:24:30 · 271 阅读 · 0 评论 -
USACO 1.3.2 Transformations 方块旋转
分析朴素的思想就是模拟翻转矩阵,官方的题解也是这样的。 但是如果数据量大的话,这种方法有点浪费。luogu上有个比较好的想法–剪枝 即在做变形的时候同时做判断,如果和当前char与目标矩阵不同就直接跳过,可以节省时间。代码只写的来暴力模拟orz/* PROG:transformID:imking022LANG:C++*/ #include <iostr...原创 2018-03-25 15:38:08 · 171 阅读 · 0 评论 -
USACO 1.2 Broken Necklace
USACO 1.2 Broken Necklace题目见落谷分析这是第一道开始有点麻烦的USACO的题目。朴素的想法是模拟数珠子的过程,遍历一边就可以得到最终答案了,但是 有几个坑要考虑好(好像USACO本身设计的案例还是很简单的),比如全白珠子,或是重叠数了白珠子。看了官方解 还有dp的解法,真是orz,先上个人的解,有时间再研究一下官方的。代码注释处...原创 2018-03-24 20:52:08 · 191 阅读 · 0 评论 -
LeetCode 319. Bulb Switcher
题解自然地会想到模拟开关的方法,开一个数组记录开关情况,最后奇数者亮。例如int bulbSwitch(int n) { vector<int> cot(n+1,1); int res=0; if(n==1) return 1; for(int pos=1;pos<=n;pos++){ ...原创 2018-10-24 15:08:11 · 146 阅读 · 0 评论