Cynthia=w=
Aurum_potestas_est
这个作者很懒,什么都没留下…
展开
-
Codeforces862E(函数处理,stl?)
挣扎了很久还是写了出来,吐血三升![这里写图片描述] 一个不算难的E题,题解简单易懂,是我太菜了QAQ 题意:输入n,m,q(1 ≤ n ≤ m ≤ 10^5, 1 ≤ q ≤ 10^5),存在一个j(0<=j<=m-n),使得(懒到不想输公式…) 最小,并输出这个最小值。有q次操作,对于每一次操作,都给出l,r,x。分别代表对a数组操作的左边界右边界以及修改值。在每一次操作过后都输出f(j)的原创 2017-09-23 03:44:05 · 346 阅读 · 0 评论 -
codeforces946D(dp)
题意:n天,每天m个学时,最多旷k节课,求在学校呆的最短时间。 分析:先预处理一天旷x节课后所需的最小学时(代码如下) int minn=inf; for(int i=1;i<=n;i++){ for(int j=0;j<al[i];j++){ minn=inf; for(int kx=0;kx<...原创 2018-03-11 14:13:14 · 338 阅读 · 0 评论 -
NOWCODER练习赛13B(dfs)
题意:只含4和7的数字为幸运数字,令next(x)为大于等于x的第一个幸运数字,给出l,r,求出next(l)+next(l+1)…..+next(r)的和。 分析:本来是一道很普通的dfs,但是却没有看出来,还是练习太少了(似乎我搜索题做的太少了,没有这种反应度),看了吕爷代码才知道,和大佬的差距还是明显的……#include<iostream>#include<c...原创 2018-03-17 13:20:26 · 179 阅读 · 0 评论 -
SCU 4492(数学)
题目链接:http://acm.scu.edu.cn/soj/problem.action?id=4492 分析:其实明显是找规律的题目静下心来慢慢找会比较好,另此题用到了欧拉函数所以数学菜鸡表示有点头疼。之前卡了半天的输出问题其实只是变量打错了(泪奔)。具体推导过程参见吕爷博客:http://www.expmango.com/156/2016scu_xiao_sai_scu4492_bored...原创 2018-03-22 23:08:42 · 284 阅读 · 0 评论 -
codeforces960C(构造)
题意:在原列中,只有最大元素-最小元素< d的组合被保留,已知保留下的组合数X和d,求可能的原列。输出原列中的元素个数n(n<=10000)以及各元素。 分析:比的时候想多了,一个列中可以有重复元素。每多增加一个元素a,它和列中的其他a构成满足条件的子集的个数就增加2^(a的原数量)个,所以可以很方便很快捷的构造… AC代码:#include<bits/stdc++.h&...原创 2018-04-08 23:10:45 · 220 阅读 · 0 评论 -
codeforces954D(bfs)
先贴代码,明天再解析( AC代码:#include<bits/stdc++.h>const int maxn = 1000000000+7; //1e9+7using namespace std;vector<int> edge[1007];int exi[1007][1007];vector<int> q;int n,m,s,t;int...原创 2018-04-10 03:03:21 · 424 阅读 · 0 评论 -
codeforces962C(暴力的构造)
题意:给出一个数字n(1<=n<=2000000000),问最少删掉n中的几个数,能使得剩下的值变成平方数(不包括0)。 分析:为啥第一次错了呢?为啥比赛的时候wa了呢?因为我把0加进去了啊╮(╯_╰)╭ n最多10位数,化成字符形式一位位匹配过来就行了。我都不好意思说是构造……AC代码:#include<bits/stdc++.h>usi...原创 2018-04-16 01:11:01 · 396 阅读 · 0 评论 -
codeforces962D(暴力stl)
题意:给一个数串,让你从小到大,从左到右,相同的两个凑一对放在右边那个数原先的位置上,问最后还剩多少个数字,他们的排列顺序是什么。Gloria’s:#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<vector>...原创 2018-04-11 21:50:47 · 435 阅读 · 0 评论 -
codeforces977D(显而易见的dfs)
AC代码:#include<bits/stdc++.h>using namespace std;long long a[107];map<long long,int> mp;stack<long long> s;int check1(long long x){ if(mp[x*3]) return 1; else return ...原创 2018-05-08 21:34:44 · 374 阅读 · 0 评论 -
codeforces967B
AC代码:#include&lt;bits/stdc++.h&gt;using namespace std;long long s[100000+7];long long sum=0;int main(){ ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); long long n,A,B; ci...原创 2018-05-03 22:25:48 · 182 阅读 · 0 评论 -
康复训练codeforces965C(数学)
AC代码:#include<bits/stdc++.h>using namespace std;char s[107][107];int main(){ ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); long long n,k,M,D; cin>>n>>k&...原创 2018-04-28 02:20:26 · 302 阅读 · 0 评论 -
gym101778A(Lucas定理)
久未动笔,有些生疏。 题意:柯南在零秒时,从零点开始出发,每一秒向左向右走的概率各为0.5,求m秒后在n处的概率p/q。输出z∗q≡pmod1e9+7z∗q≡pmod1e9+7z*q≡pmod1e9+7 分析:这道题2017秦皇岛CCPC最后一题(如果没记错的话)出现过类似的,不过当时是二位空间求概率。2018年的川大校赛也出现过然而那个出成了水题…… 通过简单分析我们可以得知以下规律: ...原创 2018-05-27 02:28:18 · 298 阅读 · 0 评论 -
gym100650H(dfs,dp)
题意:给一串数字,每次可以取最左或最右,greedy strategy指从最左和最右当中选取较大的数字取走,取走的数字加成分数,问在最优情况下,greedy strategy会丢掉多少分数。 AC代码:#include<bits/stdc++.h>using namespace std;//设对手使用 greedy strategyint dp[1007][1007];...原创 2018-05-28 23:42:01 · 176 阅读 · 0 评论 -
gym101234G(优先队列)
题意:给一堆数字,求第K大的组合(每一位数字不重复用)最开始用的multiset,超时。提醒后想了优先队列,可惜一个数只能加一次这个问题并没有得到解决,后来看了大佬的代码,发现自己少想了一步,就是在优先队列当中加入这个数字本来在数组当中的位置。这样,对于每个当前数字,便有选与不选两种情况,first代表组合大小,second代表当前处理到了第几个数字。用second来记录选到了哪个数字。#...原创 2018-03-08 19:38:32 · 377 阅读 · 0 评论 -
Codeforces180C(dp)
题意:给一个字符串,求最少处理几次能将此串处理为左边全大写右边全小写的串。 分析:这道题的dp过程比较特殊,应视为某个字母左边全大写和右边全小写之和,有个坑点(第一次wa)就是这个字母本身是大写还是小写并不重要。 AC代码:#include<bits/stdc++.h>#define pb push_backusing namespace std;const int ...原创 2018-02-08 18:48:14 · 332 阅读 · 0 评论 -
gym101102H(纯粹的水题)
这篇博客只为提醒自己细心审题。 题意:Rami和他的朋友去看电影,只有一排有座,问他和朋友是否能够连续地坐在一起。 输入:t组数据,c个座位,k个朋友(!)。随后c个数字,0代表空位1代表有人。wa在这么简单的题目上…k个朋友,并没有算上他自己。#include<bits/stdc++.h>using namespace std;int main(){ int t; scan原创 2017-09-26 00:15:50 · 303 阅读 · 0 评论 -
gym101102I(模拟)
题意:给出t组样例,每组样例输入r和c代表空间的长和宽。给出机器人的行动顺序,机器人不能走出范围,求出尽可能少的跳过的步骤。 思路:典型的模拟,重点在于起点未定。可以记录机器人分别在四个方向走出的最大值。当最右-最左>c时,多出来的那一部分必定要跳过,同理上下。 for(int i=0;i<strlen(s);i++){ x=nowx,y=nowy;//nowx代表x的当前原创 2017-09-26 12:51:19 · 289 阅读 · 0 评论 -
gym101431D(传说中的构造(呸))
借了某位大佬的思路 http://blog.csdn.net/wuxufanzhong/article/details/75909631 菜鸡到一旦循环从0开始而非1开始就会计数混乱QAQ#include<bits/stdc++.h>using namespace std;int s[50007];int main(){ int n,x; while(~scanf("%d%原创 2017-09-22 01:26:48 · 666 阅读 · 0 评论 -
Codeforces 862C(构造)
最近好像老是跟构造过不去눈_눈 题意:给出n与x,要求先说可不可以给出n个数字使其异或和为x,如果可以,那么输出这n个数字。 思路: 1、首先要知道(x^y^(x+y))=0,手动列一下式子就粗来了눈_눈 2、然后0和k(k为任何数字)异或的结果是k(当年pascal的基础大概是被我吃了) 一开始定义的max1和max2的位数极长,换算成十进原创 2017-09-22 15:20:12 · 1195 阅读 · 0 评论 -
codeforces884C(暴力想法题?)
题意:输入n表示有n个车站 输入n个数,表示这些从这些车站出发可以到达的车站 输出:最多修改两个车站的到达站点,并且满足限制条件,求最大的路线数。 限制条件:一个车站有且仅有一个到达车站。 可以从这个车站到它本身 思路:其实就是一个很简单的题目… 由于公式a^2+b^2<(a+b)^2,易知我们只需找出两个最大的环,将这两个环融合。然后每个环内节点数的平方原创 2017-10-28 02:10:48 · 506 阅读 · 0 评论 -
codeforces884D(大概是构造,优先队列)
<回头补题意和分析> WA代码(没有用优先队列):#include<bits/stdc++.h>using namespace std;vector<int> a;int main(){ int n; long long ans=0; cin>>n; for(int i=1;i<=n;i++){ int num; cin>>nu原创 2017-10-28 12:34:08 · 699 阅读 · 0 评论 -
codeforces892C(gcd)
题意:给一个长度为n的序列,取相邻两个,将两个中的任意一个变成两数的最大公约数,问最少需要这样操作几次才能将整个序列都变为1. 错误分析:最开始是想除去特殊情况以外,每次都把大的那个变成公约数,后来发现不行。比如: 3 42 15 35这组数据,要是把较大的变为公约数,会多增加几次操作(因为中间的数字未变)。 正确分析:除去特殊情况以外,应该逐项gcd并将gcd的结果放到靠后的那个数原创 2017-11-18 16:08:14 · 675 阅读 · 0 评论 -
codeforces887C(模拟)
原题:2016icpc西安现场赛B 题意:给你一个二阶魔方各个方块的颜色,问是否能够一步还原。 分析:简单的模拟一下就行了….总共就六种操作 AC代码:#include <iostream>#include <cstdio>using namespace std;int a[7][5];int b[7][5];bool judge(){ int i=0; for(int j原创 2017-11-04 05:34:46 · 733 阅读 · 0 评论 -
codeforces864C(模拟、数学)
题意:一辆车从0点出发,开向a点,或者从a开向0,称为一次journey,在f点有个加油站能加满油(油箱容量为b),问最少加几次油能进行k次journey。若不能,输出-1。a 备注:最开始起点为零。 分析:当b#include<bits/stdc++.h>using namespace std;int main(){ ios::sync_with_stdio(false);原创 2017-11-15 02:02:42 · 422 阅读 · 0 评论 -
Codeforces864D(构造水题?)
题意:给一个n,然后给出n个范围在1到n之间的数,问最少改变几个数字才能得到一个完整的从1到n的序列,然后输出这个序列并保证这个序列的字典序最小。 分析:首先n小于2e5,那么直接暴力就可以了…… AC代码:#include<bits/stdc++.h>using namespace std;const int maxn=2e5+7;int a[maxn],pre[maxn],mis[ma原创 2017-11-16 01:33:22 · 333 阅读 · 0 评论 -
十进制转二进制位运算易出现的错误
和Gloria写题的时候发现一个神奇的问题 十进制转二进制时取最高位 for(int i=0;i63;i++){ if((n>>i)&1){ s[i]++; p=i; } }for(ll i=0;i63;i++) { if(n&(1<<i)) { po原创 2018-01-23 21:27:51 · 813 阅读 · 0 评论 -
Help Jimmy POJ - 1661
“Help Jimmy” 是在下图所示的场景上完成的游戏。 场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。Jimmy每次下落的高度不能超过MAX米,原创 2018-02-06 17:58:23 · 182 阅读 · 0 评论 -
codeforces987E(想法?)
题意:给出一个1到n的序列,Petr打乱了3n次,Um_nik打乱了7n+1次,现你有打乱后的数列,求是谁打乱的。 分析:比赛的时候怕是失了智在那边想随机算法…事实上用选择排序,找出最少交换次数,然后判断奇偶性就可以了…… for(int i=1;i&lt;=n;i++){ cin&gt;&gt;now[i];//目前所占i这个位置的数字 pos[n...原创 2018-05-30 17:22:49 · 386 阅读 · 0 评论