牛客网
ITKaven
ACMER
本科软件工程专业
硕士计算机技术专业
专注于WEB开发的烟酒僧
展开
-
牛客练习赛20
E题很简单,直接上代码吧#include<bits/stdc++.h>using namespace std;int main(){ int n; scanf("%d",&n); int ans[3]; ans[0]=ans[1]=ans[2]=0; bool isok=true; for(int i=0;i<...原创 2018-06-15 23:02:56 · 1358 阅读 · 0 评论 -
Wannafly挑战赛22 B 字符路径
题目传送门代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=50000+100;const LL mod=1LL<<32;struct Edge{ int to,next; char val;}edge[maxn];...原创 2018-08-18 10:14:42 · 904 阅读 · 0 评论 -
Wannafly挑战赛22 D 整数序列
题目传送门代码:#include<bits/stdc++.h>using namespace std;#define lson rt<<1,l,mid#define rson rt<<1|1,mid+1,r#define ls rt<<1#define rs rt<<1|1#define low(x) x&...原创 2018-08-18 11:47:09 · 947 阅读 · 0 评论 -
牛客练习赛25 C :再编号
题目传送门 代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=100000+100;const int mod=1e9+7;LL tt[maxn],sum;int ans[maxn];int n,m;int main(){ scanf(...原创 2018-08-28 16:39:33 · 1657 阅读 · 0 评论 -
牛客练习赛25 A 因数个数和
题目传送门 代码:#include<bits/stdc++.h>using namespace std;int main(){ int q; scanf("%d",&q); while(q--){ int n; scanf("%d",&n); long long cnt=0; ...原创 2018-08-24 20:23:24 · 989 阅读 · 0 评论 -
Wannafly挑战赛23 A :字符串(尺取法)
题目传送门 代码:#include<bits/stdc++.h>using namespace std;const int maxn=1000000+100;char ch[maxn];int cnt[30];bool check(){ for(int i=0;i<26;i++) if(!cnt[i]) return false; re...原创 2018-09-04 10:22:48 · 1734 阅读 · 0 评论 -
牛客OI赛制测试赛 A:斐波那契
题目传送门 可以得到 f[n-1]*f[n+1]-f[n]^2=f[n-3]*f[n-1]-f[n-2]^2 所以当 n 为偶数时 f[n-1]*f[n+1]-f[n]^2=f[1]*f[3]-f[2]^2=1 所以当 n 为奇数时 f[n-1]*f[n+1]-f[n]^2=f[2]*f[4]-f[3]^2=-1代码:#include<bits/stdc++.h>usi...原创 2018-08-30 09:04:05 · 3939 阅读 · 0 评论 -
牛客OI赛制测试赛 C:序列
题目传送门 数据随机,随便乱搞代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=100000+100;LL ans[maxn],sum[maxn];int main(){ int n,q; scanf("%d%d",&n,...原创 2018-08-30 09:26:15 · 1605 阅读 · 0 评论 -
牛客OI赛制测试赛 D:小叶的巡查
题目传送门 求树的直径即可 代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;typedef pair<LL,int> P;const int maxn=30000+100;const LL INF=1e18;LL dis[maxn];bool vis[maxn];...原创 2018-08-30 10:21:21 · 1755 阅读 · 0 评论 -
牛客OI赛制测试赛 E:旅行青蛙
题目传送门 最长不下降子序列 代码:#include<bits/stdc++.h>using namespace std;const int maxn=30000+100;const int INF=0x3f3f3f3f;int main(){ int n; scanf("%d",&n); vector<int>G;...原创 2018-08-30 10:34:22 · 1758 阅读 · 0 评论 -
牛客OI赛制测试赛 F:子序列
题目传送门 代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn=1000+100;const LL mod=1e9+7;const LL M=mod-1;int ans[maxn];LL fac[maxn][maxn];LL mypow(LL ...原创 2018-08-30 13:02:12 · 1710 阅读 · 0 评论 -
牛客OI赛制测试赛2 C :数列下标
题目传送门 单调队列 代码:#include<bits/stdc++.h>using namespace std;const int maxn=10000+100;struct Que{ int val,id; }que[maxn];int ans[maxn];int main(){ int top=0; int n; ...原创 2018-09-07 10:02:50 · 1667 阅读 · 0 评论 -
牛客OI赛制测试赛2 A :无序组数
题目传送门 去掉重复的就可以了 代码:#include<bits/stdc++.h>using namespace std;unordered_map<int,int>M;int main(){ int T; scanf("%d",&T); while(T--){ int A,B; sca...原创 2018-09-07 11:55:23 · 1559 阅读 · 0 评论 -
牛客OI赛制测试赛2 D :星光晚餐
题目传送门 看出规律,再二分即可 代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;int main(){ LL n; scanf("%lld",&n); int l=0,r=1e9,node; while(l<r){ ...原创 2018-09-07 14:26:10 · 1655 阅读 · 0 评论 -
牛客OI赛制测试赛2 E :括号序列
题目传送门 贪心 代码:#include<bits/stdc++.h>using namespace std;const int maxn=5000000+100;char ch[maxn];int ph[maxn];int main(){ int n; scanf("%d",&n); getchar(); int ...原创 2018-09-07 15:18:11 · 1712 阅读 · 0 评论 -
牛客OI赛制测试赛2 B :路径数量
题目传送门 k很小,就不写矩阵快速幂了 代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;LL ans[50][50],rev[50][50],tmp[50][50];int main(){ int n,k; scanf("%d%d",&n,&k...原创 2018-09-07 15:39:43 · 1425 阅读 · 0 评论 -
牛客OI赛制测试赛2 F :假的数学游戏
题目传送门 斯特林公式 代码:#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;const double PI=3.1415926;typedef long long LL;int main(){ LL x; scanf(&quot;%lld&quot;,&amp;amp;x); LL l=10,r=1LL&原创 2018-09-07 16:26:48 · 1683 阅读 · 0 评论 -
Wannafly挑战赛22 A 计数器
题目传送门代码:#include<cstdio>#include<algorithm>using namespace std;const int maxn=100+10;int a[maxn];int main(){ int n,m; scanf("%d%d",&n,&m); int ans=m; ...原创 2018-08-17 23:07:42 · 915 阅读 · 0 评论 -
Wannafly挑战赛10 D:小H的询问(线段树区间合并)
题目传送门线段树区间合并模板题 代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=100000+100;/*lm:从 l 位置开始的最大的有效子区间的权值和rm:以 r 位置结束的最大的有效子区间的权值和m: 区间[l,r]的最大的有效子区间...原创 2018-08-03 10:12:57 · 974 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第一场)J : Different Integers
正好前几天学了一下莫队,看到这个题,就赶紧上去敲了个莫队,后来就。。。tle哭了 加了输入输出优化,还是没啥卵用。。。。可能是本人太菜了,别人都卡过去了。挣扎了半个小时,一直tle,后来就。。。。放弃莫队,并且放弃比赛(溜了溜了),去做杭电上一个树形莫队的题去了,也一直tle,心态崩了。。。 接下来就是补题阶段: 看了叉姐的直播,用树状数组来做的。 我也用树状数组维护区间不相同数的个数,我...原创 2018-07-19 21:18:17 · 3440 阅读 · 0 评论 -
Wannafly挑战赛20 A 染色 B 背包
当时看了一下题目,觉得还挺简单的,想了一下思路,大概15分钟A了 思路大概是这样的:反正要变成的颜色肯定是树上某个点的颜色,我们枚举树上所有的点变成某个点颜色的代价,取其中的最小值,可以线性得到,因为树上所有的点变成某个点node颜色的代价为 =树上所有点的价值-不需要改变颜色点的价值和+需要改变颜色点的数量*点node的价值 这些价值相同的数量,我用map存的#include&amp;amp;lt;bi...原创 2018-07-21 09:16:40 · 3388 阅读 · 0 评论 -
牛客网-2018年湘潭大学程序设计竞赛:G 又见斐波那契
题目传送门这里需要使用矩阵快速幂(斐波那契数列的项数n一旦过大,就要考虑矩阵快速幂)。 使用矩阵快速幂的一个关键问题就是矩阵递推式。 可以得到下面这个递推式了: 我用等式 T^(n+1)=B*T^n,来代替上面的等式 计算矩阵B得到如图矩阵: 所以T^n=B^(n-1)*T 这样直接使用矩阵快速幂计算B^(n-1),再B^(n-1)的第一行乘T的第一列,得到 A[n] ...原创 2018-07-26 22:41:56 · 1162 阅读 · 0 评论 -
牛客练习赛14 B:区间的连续段(倍增打表)
题目传送门 dp[i][j]表示从位置 i 开始分 2^j 段的 结束点+1的位置 再进行倍增打表即可,具体看代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1000000+100;int dp[maxn][25];ll sum[maxn];int...原创 2018-08-03 17:04:07 · 1018 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第一场)A : Monotonic Matrix
比赛的时候不会写这个题,一直在找规律,可惜找不到。。。然后就放弃了这个题 今天补题看了题解又不是很懂,花了大半天的时间去理解叉姐的解题思路,终于理解了一点#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll mod=1e9+7;const int maxn=1000+100;...原创 2018-07-22 17:23:28 · 3372 阅读 · 0 评论 -
牛客小白月赛5 : A D F G H I J
A 无关(relationship) 经典容斥原理题目。#include&amp;amp;amp;amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;amp;amp;amp;gt;using namespace std;typedef long long ll;const int maxn=25;int k;ll ans[maxn];ll kaven(ll a){ if(a==0) return 0;原创 2018-07-22 23:07:25 · 4047 阅读 · 14 评论 -
Wannafly挑战赛21 C:大水题
思路很简单 直接上代码:#include&lt;bits/stdc++.h&gt;using namespace std;typedef long long ll;const int maxn=300000+100;ll ans[maxn],val[maxn],sum[maxn],dp[maxn];map&lt;int,ll&gt;M; int main(){ i...原创 2018-08-04 10:02:14 · 930 阅读 · 0 评论 -
牛客练习赛23 :A B C D
A 贪心思想,尽量选大的,这样支出的纸票数量和硬币数量之和最小 代码:#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;int yuan[]={100,50,20,10,5,2,1};int fen[]={50,20,10,5,2,1};int num[20];int main(){ int T; scanf...原创 2018-07-27 23:35:50 · 1235 阅读 · 0 评论 -
牛客练习赛9 F:珂朵莉的约数
题目传送门 参考博客:牛客练习赛9 F - 珂朵莉的约数我和该博主一样的地方:写莫队的时候发现了曾经没有注意到的事情,就是要先进行add,然后进行delete。尴尬。。。inv[0]=inv[1]==1,多写了一个等号,害我查了一天的bug,以为是莫队或者质因数分解写错了,一段一段的进行测试,发现都没错。。。可怕的等号。代码:#include&lt;bits/stdc++.h&g...原创 2018-08-01 16:54:06 · 1187 阅读 · 0 评论 -
牛客练习赛24 A B C D E F
A 1 m=1 n=1 的情况,只有 1 种符合情况的排列方法。 2 m=1 n&amp;amp;amp;amp;gt;1 的情况,没有符合情况的排列方法。 3 m&amp;amp;amp;amp;gt;1 n&amp;amp;amp;amp;gt;1 的情况,有 m*(m-1)^(n-1) 种符合情况的排列方法。代码:#include&amp;amp;amp;amp;lt;bits/stdc++.h&amp原创 2018-08-10 21:30:50 · 927 阅读 · 0 评论 -
Wannafly挑战赛7 E:珂朵莉与GCD
题目传送门树状数组可解代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=100000+100;const ll mod=1e9+7;struct Node{ int l,r; int id;}node[maxn];ll ans...原创 2018-08-01 23:08:16 · 1365 阅读 · 0 评论 -
牛客练习赛10 E:数列查找
莫队 将出现次数进行分块,再将出现次数的值进行分块代码:#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;const int maxn=40000+100;int ans[maxn];int num[maxn];int cnt[maxn];int n,m;int R[maxn];int Rc[210],Rcnum[max...原创 2018-08-02 15:09:47 · 977 阅读 · 0 评论 -
Wannafly挑战赛8 D :Alice和Bob赌糖果
这种概率题不是很会做,收集一下板子赌徒破产模型#include&lt;bits/stdc++.h&gt;using namespace std;const int maxn=200000+100;double val[maxn];/* 模版 p的概率往右移一格,从 n 走到 end 的概率*/ double Cal(double p,int n,int end){ ...原创 2018-08-02 16:14:50 · 5299 阅读 · 1 评论 -
Wannafly挑战赛8 C :小C打比赛
状态压缩+概率DP#include&lt;bits/stdc++.h&gt;using namespace std;double p[7][181];double dp[1&lt;&lt;6][181];int main(){ int n,m; while(scanf("%d%d",&amp;n,&amp;m)==2){ fo原创 2018-08-02 17:07:13 · 1018 阅读 · 0 评论 -
牛客练习赛11 E :求最值
分治思想 代码:#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;typedef long long ll;const int maxn=100000+100;struct Node{ ll id,sum;}node[maxn];int tmp[maxn];inline bool cmp(int a,int b){...原创 2018-08-02 20:51:23 · 992 阅读 · 0 评论 -
Wannafly挑战赛10 C:小H和游戏
题目传送门首先我们把无根树变成有根树 一个点的受损次数来自于: 1.父亲的父亲结点的贡献 2.父亲结点的贡献 3.兄弟结点的贡献 4.孩子结点的贡献具体看代码:#include&lt;bits/stdc++.h&gt;using namespace std;const int maxn=750000+100;vector&lt;int&gt;G[maxn];int...原创 2018-08-02 23:21:39 · 1019 阅读 · 3 评论 -
牛客小白月赛9 A、B、C、D、E、H
传送门A被砸到的概率 = 1 - 不被砸到的概率而不被砸到的概率很容易计算。代码:#include&lt;cstdio&gt;using namespace std; typedef long long ll;const ll mod=1e9+7;const int maxn=100000+100; ll mypow(ll a,ll b){ ll sum=1; ...原创 2018-11-29 13:38:31 · 4634 阅读 · 0 评论