关于 OJ1574的参考题解(较麻烦)】的更多相关文章

#include <stdio.h>int main(){ long a,b,c,d,e; scanf("%ld",&a); d=a; b=0; while(d>2) { d=d/2; b=b+1; } b=b-1; d=2; for(c=1;c<=b;c++) { d=d*2; } b=d*2; c=b-a; e=a-d; if(c<e) printf("%ld\n",b); else printf("%ld\n&q…
这一次的 Wannafly 挑战赛题目是我出的,除了第一题,剩余的题目好像对大部分算法竞赛者来说好像都不是特别友好,但是个人感觉题目质量还是过得去的,下面是题目链接以及题解. [题目链接] Wannafly 挑战赛 19 参考题解 命题:周甄陶 Problem A. 队列 Q 将操作离线倒序处理,可以线性效率解决这个问题.看代码很快就能懂了,不再赘述. 时间复杂度:$O(N + Q)$ Problem B. 矩阵 首先看一个问题:有一个长度为 $N$ 的序列 $A$,对于每一个位置 $i$,计算…
[官方题解]:https://www.nowcoder.com/discuss/65411?toCommentId=1134823 [题目链接]:https://www.nowcoder.com/test/question/8fd2b461f3874031a29bdf5aac3c8d51?pid=8527168&tid=12942913 1. 妞妞听说Nowcoder Girl女生编程挑战赛要开始了, 但是她没有足够的勇气报名参加, 牛牛为了帮助妞妞,给她准备一台勇气获得机.初始的时候妞妞的勇气…
#include <stdio.h>int main(){ int a,b; scanf("%d",&a); b=0; while(a) { b+=a%10; a/=10; } printf("%d\n",b); return 0;}…
题目链接:http://codeforces.com/contest/839 A. Arya and Bran 题意:每天给你一点糖果,如果大于8个,就只能给8个,剩下的可以存起来,小于8个就可以全部给完 解法:水题,按照题意模拟一下即可. #include <bits/stdc++.h> using namespace std; int n, k, a[110]; int main() { cin>>n>>k; int s = 0; for(int i=1; i<…
题意:给你汽车容积c1,c2,再给你n个包裹的体积,问你最少运几次能全运走 思路:用2进制表示每次运送时某物在不在此次运送之中,1在0不在.我们把运送次数抽象成物品价值,把状态抽象成体积,用一个dp[ i ] 记录完成状态i的最少步数那么就转化为了01背包问题,得到状态转移方程dp[ j|state ] = min( dp[ j|state ],dp[j] + 1 ),state为运送时物品的状态. 然后讲一下可能会有点看不懂的judge()的一段代码 for(int j = c1;j >= v…
次元传送门:洛谷P1073 思路 一开始看题目嗅出了强连通分量的气息 但是嫌长没打 听机房做过的dalao说可以用分层图 从来没用过 就参考题解了解一下 因为每个城市可以走好几次 所以说我们可以在图上随意走动 所以第一层图就建一个边权为0的图 随意走动不影响 考虑在某个点买入水晶球 建立一条有向边到新图上 边权为-w[i] 指向i所能到达的点(第二层图中) 它表示:假如我选择走了这条边,就是我在这个点买了这个水晶球,我不会反悔,并且我接下来考虑在某个点卖它. 考虑在某个点卖出水晶球 从第二层图建…
次元传送门:洛谷P1315 思路 思路大概想到了 可是代码实现却没想到 所以参考题解了 D2T3的贪心果然有难度 我们考虑在每次用加速器有两种情况 到下一个点还需要等待:以后的时间就不再影响了 到下一个点不需要等待:那么就会影响到后面的时间直到出现情况1(或者到最后一个点) 用sum[i]数组记录到i时的总人数 进行前缀和处理 e[i]为i可以影响到的最远的点 那么sum[i + e[i]] - sum[i] 即是能影响到的人数 这里需要用到贪心思想 即把影响最大的点用加速器 代码 #inclu…
http://www.lydsy.com/JudgeOnline/problem.php?id=1604 https://www.luogu.org/problemnew/show/P2906#sub 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发现她们已经结成了几个“群”.每只奶牛在吃草的时候有一个独一无二的位置坐标Xi,Yi(l≤Xi,Yi≤[1..10^9]:Xi,Yi∈整数.当满足下列两个条件之一,两只奶牛i和j是属于同一个群的: 1.两只奶牛…
无需吟唱,直接传送 problem A 题目大意 已知有n个偶数,m个奇数,问这些数有没有可能组成一个严格递增1的序列 题解 判断abs(n,m) <= 1即可,注意n,m均为0的情况. Code #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long ll; inline void read(int &x){ x=0;…
别碰我! 自己还是太蒟了…… 看了好久,最后抄参考题解打出来的…… 前面的可能影响后面的,所以按照询问右端点排序 这时候维护一个前缀和数组就可以了, 那么问题又来了,去重? 可以这样,从前往后枚举,如果被加过了就在前面去掉 具体看代码(题目毒瘤导致卡常卡了好几遍): #include<bits/stdc++.h> #define rint register int #define lowbit(x) (x&(-x)) using namespace std; ],a[],vis[],o…
传送门 首先想了黑白染色,发现不会染 其实可以考虑如何动态地维护出这个点集 发现题面里对不在点集之中的点之间的连边没有要求 所以考虑不断向图中加点,为了满足要求,每次取一个与当前新图中相连的点 若它与点集中的点有连边,那它不能选入点集 如果没有,那它必须选入点集,否则这个点不满足「通过开启边可达」的要求 但如何证明这样下去得到的点集一定满足「通过开启边可达」的要求呢? 发现加了「开启边」这个要求之后非点集中的点之间的连边就废了 那图就成了二分图了 而我们加边时所加的所有边构成一条链,这条链连通了…
删除链表中重复的结点:较难 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 public class Solution { public ListNode deleteDuplication(ListNode pHead) { if(pHead==null||pHead.next==null)return pHead; ListNod…
有时候,很简单的模板题,可能有人没有做出来,(特指 I ),到时候一定要把所有的题目全部看一遍 目录 B 题解 E F 题解 H I 题解&代码 J B 输入样例 3 2 1 2 1 2 3 1 输出样例 1 说明 In the first sample case, the sequence [a1,a2,a3]=[0,1,0][a_1,a_2,a_3]=[0,1,0][a1,a2,a3]=[0,1,0] meets all the constraints and has the minimum…
人生第一场正式OI [序] 2016-12-04 见底部 [Day -1] 2016-11-17 期中考试无心插柳柳成荫,考了全市第2班里第1(还不是因为只复习了不到两天考试),马上请了一个周的假准备NOIP(数学生物还是回去上课的) 灰哥跟我一块,tlq考吃了没请假 正好下个周老班出去学习了不害怕 星期4所有人都请假了,漫无目的地复习了一天题,参考题解补了一场模拟赛 晚上灰哥因为住宿直接回家了,还让我给XXX送纸条(不是都有小马了嘛) SD NOIP的群好多人直播,我们就直播了个国际象棋(竟然…
题目链接 第一种解法是$O(n^3*p)$的:f[i][j][k]表示前i个人进j个人长度为k有几种方案(排列固定为123..n时).$f[i][j][k]=f[i-1][j][k]+f[i-1][j-1][k-a[i]]$最外层枚举t表示被卡的那个人.i=t时不加上f[i-1][j-1][k-a[i]].$ans={{(\sum f[n][j][k]*j*j!*(n-1-j)!)+(\sum f[n][n][k]*n)}}/(n!)$. 可以看看这篇题解 #include<cstdio> #…
关于证明可以参考题解http://codeforces.com/blog/entry/12739 就是将概率从大到小排序然后,然后从大到小计算概率 #include <iostream> #include <vector> #include <string> #include <algorithm> #include <functional> #include <cstdio> using namespace std; int mai…
http://www.lydsy.com/JudgeOnline/problem.php?id=1998 题意: 给你6个整数$n,s,q,p,m,d$. 有$n$个位置和$n-1$个盒子,位置编号从$0$开始(盒子编号从$1$开始).一开始第$i$个盒子在第$i$个位置上,$0$号位置是空位.然后有一个$pos$序列,其中$i$位置上放的盒子是$pos_i$(其中$s$位置上必须是空位).问:每次只能将一个盒子移动到空位上(然后这个盒子的位置变成空位),求从初始局面移动到$pos$局面的最少步…
传送门 D. Restructuring Company time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Even the most successful company can go through a crisis period when you have to make a hard decision — to rest…
Product-sum numbers A natural number, N, that can be written as the sum and product of a given set of at least two natural numbers, {a1, a2, … , ak} is called a product-sum number: N = a1 + a2 + … + ak = a1 × a2 × … × ak. For example, 6 = 1 + 2 + 3 =…
0 or 1 题目链接: Rhttp://acm.hust.edu.cn/vjudge/contest/122685#problem/R Description Given a n*n matrix C ij (1<=i,j<=n),We want to find a n*n matrix X ij (1<=i,j<=n),which is 0 or 1. Besides,X ij meets the following conditions: 1.X 12+X 13+...X 1…
题目直达车:   POJ 1185 炮兵阵地 分析: 列( <=10 )的数据比较小, 一般会想到状压DP. Ⅰ.如果一行10全个‘P’,满足题意的状态不超过60种(可手动枚举). Ⅱ.用DFS搜出所有可能表示状态的整数(二进制1表示可以放,0则不能). Ⅲ.对每一行的地行进行状态处理(p[i]表示第i行地形的状态),二进制‘H’转1,‘P’转0: Ⅳ.用dp[i][j][k]表示第i行,且i行状态为j,i-1行状态为k时,最多能放置的量. Ⅴ.对于第i行的可行状态必须满足: ⒈  j &…
3538: [Usaco2014 Open]Dueling GPS Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 59  Solved: 36[Submit][Status] Description Farmer John has recently purchased a new car online, but in his haste he accidentally clicked the "Submit" button twice w…
2962: 序列操作 Time Limit: 50 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 有一个长度为n的序列,有三个操作1.I a b c表示将[a,b]这一段区间的元素集体增加c,2.R a b表示将[a,b]区间内所有元素变成相反数,3.Q a b c表示询问[a,b]这一段区间中选择c个数相乘的所有方案的和mod 19940417的值. Input 第一行两个数n,q表示序列长度和操作个数. 第二行n…
题目大意 求两两互不同构的含n个点的简单图有多少种. 简单图是关联一对顶点的无向边不多于一条的不含自环的图. a图与b图被认为是同构的是指a图的顶点经过一定的重新标号以后,a图的顶点集和边集能完全与b图一一对应. 题解 这个题是学习了Polya定理和群论以后的练手题,但是推了好久并没有推出来....真的是太难辣... 首先我先说一下我错误的想法: 很容易就把这个题转化成了给\(K_n\)的完全图上的边进行二着色的问题,然后,由于在组合数学课程中经常接触到多边形着色,所以我就把这个题错误的转化成了…
●(做codevs1908时,发现测试数据也涵盖了1907,想要一并做了,但因为“技术”不佳,搞了一上午) ●09方格取数问题(codevs1907  方格取数3) 想了半天,也没成功建好图: 无奈下参考题解,说是本题要求二分图点权最大独立集,然后可以由结论:“最大点权独立集 = 所有点权 - 最小点权覆盖集 = 所有点权 - 最小割集 = 所有点权 - 网络最大流”转化到求最大流(我真的很懵逼,但又感觉很有道理): 下面附上solution:(自己领悟吧) (不懂那个鬼结论的我就用那个结论建了…
题目描述 Mayor of Yusland just won the lottery and decided to spent money on something good for town. For example, repair all the roads in the town. Yusland consists of n intersections connected by n - 1 bidirectional roads. One can travel from any inter…
Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚到肩膀的高度Ai,并且他的胳膊长度为Bi.陷阱深度为H.如果我 们利用矮人1,矮人2,矮人3,...矮人k搭一个梯子,满足A1+A2+A3+....+Ak+Bk>=H,那么矮人k就可以离开陷阱逃跑了,一 旦一个矮人逃跑了,他就不能再搭人梯了. 我们希望尽可能多的小矮人逃跑, 问最多可以…
有一个长为L的狭窄通道,我们假设这个通道在x轴上,其两个出口分别在x=0与x=L处.在这个通道里有N只狼,第i只狼有一个初始位置ai,它想到达位置bi(0<=i=L处空间足够大可以装下任意数量的狼.那么所有的狼想从ai到bi它们总共最少走多远的距离,输出这个距离. 注意:在x<=0和x>=L的通道外部空间中移动的距离不计算在内:另外,x=0到x=L只能通过通道连通,即通道外面的世界不能从x=0走到x=L处. 解题报告: 用时:2h,2WA 这题一开始想到按照起点排序,然后枚举一个断点,断…
2006河南省选 思路:(参考题解) 枚举最大的边(第\(i\)条),从这条边开始由大到小枚举.添边,当\(s\)和\(t\)联通时,此时即为以第\(i\)条边为最大边的答案,比较每个答案,判断输出. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N = 50005; int n,m,fa[N],…