
数论
M_Lter
这个作者很懒,什么都没留下…
展开
-
银联高校极客挑战赛 初赛 第二场
目录A 码队GOB 码队弟弟的求和问题C 异世界幻想A 码队GOdp求解#include <bits/stdc++.h>using namespace std;const int N=305;int dp[N][N], n, m,maxlen;char p[N][N];int main() { int T; scanf("%d",&am...原创 2019-07-21 22:40:53 · 257 阅读 · 0 评论 -
2018 “百度之星”程序设计大赛 - 初赛(B)Pro.1006 rect
题目链接签到题,因为点不存在重边,所以题目简单。#include<cstdio>#include<cmath>#include<algorithm>using namespace std;int get(int a,int b,int c,int d){ int m=a; if(b<m) m=b; if(c<m) m=c; ...原创 2018-08-12 18:06:10 · 170 阅读 · 0 评论 -
UVA - 11651 Krypton Number System
题目链接寻找状态转移方程,题解参考处#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;typedef unsigned long long ull;const ull mod=(1ull&...原创 2018-08-12 12:46:40 · 178 阅读 · 0 评论 -
UVA - 11551 Experienced Endeavour
题目链接给n个数,r次操作,算出n个数最后的值。样例分析:1 2 是两个值,2 0 1表示第一个数由来是有两个操作,就是由下标为0,1(即所给的初始值1 2)求和构成,同理1 1表示第二个数由来是有一个操作,即由下标为1(即所给的初始值2)构成,然后得出的值作为下一次操作的初始值继续操作。可转为矩阵进行求r次快速幂再和初始矩阵乘积即可。样例1就为: ==》 ==>求解 ...原创 2018-08-12 10:26:36 · 176 阅读 · 0 评论 -
HDU - 4965 Fast Matrix Calculation
题目链接计算 ,并将M中每个元素对6取余再求和。因为 ,n太大,直接对A*B形成的矩阵快速幂会暴时爆内存,但可对k*k进行矩阵快速幂。将矩阵形式转变成: ,对B*A形成的矩阵快速幂即可。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>usi...原创 2018-08-12 08:44:36 · 146 阅读 · 0 评论 -
2018 “百度之星”程序设计大赛 - 初赛(A)Pro.1001 度度熊拼三角
题目链接签到题,找能组成三角形的最大周长。直接排序更新满足条件的三条边之和即可。#include<cstdio>#include<cmath>#include<algorithm>using namespace std;int a[1005];int main(){ int n,ans,cir; while(~scanf("%d",&a...原创 2018-08-12 08:16:00 · 249 阅读 · 0 评论 -
HDU-4990 Reading comprehension
题目链接根据题目给的代码可以打表得出一些数据,再用高斯消元得出递推式题目解法类似于hdu 6198#include<iostream>#include<cstdio>#include<cstring>using namespace std;typedef long long ll;//const ll mod=1e9+7;ll mod;...原创 2018-08-07 16:09:35 · 219 阅读 · 0 评论 -
CodeForces - 450B Jzzhu and Sequences
题目链接给定前两个值x,y,根据递推式求第n项的值。 ==》 即递推式整理为f(n)=f(n-1)-f(n-2) ,n>=2,因为数大,用快速矩阵幂求解,套模板即可#include<iostream>#include<cstdio>#include<cstring>using namespace std;typedef l...原创 2018-08-07 13:06:54 · 152 阅读 · 0 评论 -
CodeForces - 799D Field expansion
题目链接给n个放大倍数,问需要几个能使h*w区域扩充到能容得下a*b区域。很多题解用dp处理,因为直接枚举判断会暴,但在枚举时单独把倍数为2的判断,会减省很多时间,排序完,倍数大的优先满足条件,所以从倍数大的开始判断。#include<cstdio>#include<cmath>#include<cstring>#include<alg...原创 2018-08-14 22:59:42 · 166 阅读 · 0 评论 -
CodeForces - 799C Fountains
题目链接用c个硬币或者d个钻石购买两个喷泉,使得构造到的喷泉的美化值最大并求出美化值。贪心,对喷泉的美化值排序,判断CC,CD,DD三种情况即可。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;cons...原创 2018-08-14 22:53:46 · 285 阅读 · 0 评论 -
CodeForces - 799B T-shirt buying
题目链接为m位顾客挑选n件带有两种颜色的衣服,问每个顾客的花费。直接从顾客入手,复杂度是m*n,当n和m越大的时候,会超时。所以从三种颜色入手,用set存储三种颜色衣服的代价,若这种颜色衣服没有了,那喜欢这种颜色的顾客就买不到衣服,即输出-1。当满足时,这个价格的颜色都会相应删除。#include<cstdio>#include<cstring>#incl...原创 2018-08-14 22:47:39 · 157 阅读 · 0 评论 -
UVA - 10689 Yet another Number Sequence
题目链接简单的矩阵快速幂问题,取n的最后m位数字即为模取10的m次方。#include<iostream>#include<cstdio>#include<cstring>using namespace std;typedef long long ll;//const ll mod=1e9+7;ll mod;struct matrix{...原创 2018-08-12 22:04:21 · 173 阅读 · 0 评论 -
UVA - 11149 Power of Matrix
题目链接给定n*n的矩阵A和k,求 ,直接在矩阵快速幂模板上加个手写的add函数会超时,过程中有重复计算,使用二分法:将式子转变成 即 如果n是奇数,答案还要加上。这题要注意格式说明,每行没有多余的空格!#include<iostream>#include<cstdio>#include<cstring&g...原创 2018-08-12 22:59:09 · 140 阅读 · 0 评论 -
UVA - 10655 Contemplation! Algebra
题目链接给定a+b,a*b和n,要求的值。要通过a+b和a*b求a和b,再求n次方和,显然不是很容易,我们进行转换:即转换成递推式,再利用矩阵快速幂求解即可。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using nam...原创 2018-08-13 07:42:33 · 156 阅读 · 0 评论 -
CodeForces - 864
Fair Game CodeForces - 864AA、B两人各抽取n张牌中不同的两张AA和BB,然后两人拿取剩余的和其先前抽取的一样的牌,每位牌手获得的牌数是相同的,当他们可以拿下所有n张牌,那么这场比赛被认为是公平的。问牌面是否可构成公平比赛。直接记录几种牌数判断即可。#include<cstdio>#include<map>#include<al...原创 2019-05-06 00:45:42 · 238 阅读 · 0 评论 -
CodeForces - 849
A. Odds and Ends简单判断#include<cstdio>int a[105];int main(){ int n; while(~scanf("%d",&n)){ int cnt=0; for(int i=0;i<n;i++) scanf("%d",&a[i]); if(n%2==0||a[0]%2...原创 2019-04-01 14:23:12 · 142 阅读 · 0 评论 -
B - Math Show CodeForces - 846B
n个任务每个任务里有k个子任务,每个子任务完成需要a[i]个时间,完成一个子任务积一分,完成大任务多积一分。总时间为m,求最大积分数。枚举判断即可#include<cstdio>#include<algorithm>using namespace std;int a[50];int main(){ int n,k,m; while(~scanf("%...原创 2019-03-26 00:00:09 · 282 阅读 · 0 评论 -
团体程序设计天梯赛-练习集L1
目录L1-002 打印沙漏 L1-003 个位数统计L1-006 连续因子L1-009 N个数求和L1-011 A-BL1-020 帅到没朋友L1-023 输出GPLTL1-027 出租L1-043 阅览室L1-049 天梯赛座位分配L1-056 猜数字L1-002 打印沙漏 先判断层数,对半处理#include<...原创 2019-03-25 23:42:05 · 285 阅读 · 0 评论 -
A - Curriculum Vitae CodeForces - 846A
给n个只含0和1的数列,可以删去任意位置的数,使的数列满足0在1的左边,求满足条件的序列的最大长度。暴力求法:#include<cstdio>#include<algorithm>using namespace std;int main(){ int n; int a[105]; while(~scanf("%d",&n)){ int an...原创 2019-03-24 23:17:31 · 186 阅读 · 0 评论 -
CCF201812 小明上放学
201812-1 小明上学简单题,判断即可#include<cstdio>typedef long long ll;int main(){ int r,y,g,n,k,t; scanf("%d %d %d",&r,&y,&g); scanf("%d",&n); ll sum=0; for(int i=0;i<n;i++){...原创 2019-02-25 22:40:01 · 147 阅读 · 0 评论 -
Sagheer and Crossroads CodeForces - 812A (模拟)
题目链接给定四路口情况,判断是否有事故发生(事故定义为行人与车相冲突)检索哪个路口的行人灯亮的,如果这个灯是亮的,第一:就判断这个路口的出的车有没有亮的;第二:判断上个路口右转是不是亮的、下个路口左转的是不是亮的对面路口的直走是不是亮的详见代码#include<cstdio>#include<cstring>#include<cmath&g...原创 2018-09-28 22:58:49 · 162 阅读 · 0 评论 -
HDU - 5446 Unknown Treasure
题目链接求C(n,m)mod p,其中 ,是素数。因为n,m,p的数量级很大,直接用递推式会暴。lucas定理可以求解大组合数取模,即可以利用lucas定理对每个素数取模求余数之后,再用中国剩余定理求解最小满足解。#include<cstdio>#include<cmath>#include<cstring>#include<alg...原创 2018-08-30 18:46:18 · 107 阅读 · 0 评论 -
CodeForces - 807A Is it rated? +807B T-Shirt Hunt +807C Success Rate
1.Is it rated? CodeForces - 807A给定n位选手两场比赛的前后分数,判断情况属于“rated”,“unrated”,“maybe“这三种的哪种。”rated“:至少一名选手的前后分数改变;”unrated“:当后一名选手的分数大于前一名的分数;”maybe“:其他情况。#include<cstdio>#include<cma...原创 2018-08-26 22:23:47 · 995 阅读 · 0 评论 -
UVA - 10870 Recurrences
题目链接给定递推式,也给出系数数组和递推式前d项,直接套矩阵快速幂模板即可。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;typedef long long ll;ll N,mod;struct m...原创 2018-08-13 14:18:51 · 107 阅读 · 0 评论 -
HDU - 2074 叠筐
题目链接简单模拟,外筐尺寸n影响外围花色,因为具有对称性,所以处理一半即可#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=85;char map[N][N];int main(){ int n,flag=0; cha...原创 2018-08-10 10:16:21 · 177 阅读 · 0 评论 -
HDU - 1276 士兵队列训练问题
题目链接简单模拟题,在人数超过3个以上进行处理。可以队列模拟,也可以直接用数组模拟:将一开始每个人都置为0,当每次计数满足要求时置为1,再重新计数。最后输出数组里为0的编号即可。#include<cstdio>#include<cstring> #include<algorithm>using namespace std;int main()...原创 2018-08-10 08:35:56 · 212 阅读 · 0 评论 -
hdu 6235 Permutation
题目链接给定n,对1~n个数进行全排列,找出满足 ,i=3...n 的序列即可。简单数学题,即只要计算的两个数相差1时,pi%1是恒等于零的。#include<cstdio>const int N=1e5+10;int main(){ int t,p[N]; scanf("%d",&t); while(t--){ int n; scanf("%d...原创 2018-07-22 20:40:47 · 211 阅读 · 0 评论 -
hdu 5873 Football Games
题目链接简单题,n个队踢足球比赛,每两个队伍踢一场,赢的得2分,输的得0分,平局得1分。给出每个队伍最终得分,问是否合理。总分为n*(n-1),每个队得分不超过2*(n-1)。不过有个问题,最高分和最低分好像都只能一个队,举个例子:0 0 6 6这组样例是可以通过代码,但这个数据是不合理的,代码能AC。#include<cstdio>#include<cstrin...原创 2018-07-23 18:52:19 · 129 阅读 · 0 评论 -
hdu 6225 Little Boxes
题目链接简单题,大数相加C++:#include<cstdio>#include<iostream>#include<cmath>using namespace std;string sum(string s1,string s2){ if(s1.length()<s2.length()) { st...原创 2018-07-23 18:42:19 · 207 阅读 · 0 评论 -
hdu 6237 A Simple Stone Game
题目链接给了几堆石头(数组a),问移动后满足每堆石头数都能整数同一个数的最少次数(a[i]%x=0)。对石头数求和的sum也满足sum%x=0,即可以直接找sum的质因子(找因子也可以)。用数组mp存取余结果,再从大到小排序,将大堆的作为放置点,其它进行移动,对移动次数取最小值即可。#include<cstdio>#include<cmath>#inclu...原创 2018-07-23 16:58:07 · 175 阅读 · 0 评论 -
hdu 6205 card card card
题目链接简单题,sub[]记录差值,遍历一遍,用sum记录差值和,小于零的位置做个标记,sum清零,否则继续加和#include<cstdio>typedef long long ll;const int N=1e6+5;int a[N],b[N],sub[2*N];int main(){ int n; while(~scanf("%d",&...原创 2018-07-17 10:54:25 · 163 阅读 · 0 评论 -
hdu 6198 number number number
题目链接题目给定斐波那契数列递推公式F(n),要找出不满足k个F(i)(0<=i<=k)之和等于任意整数的n值是多少。先暴力打表:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long ll;const ...原创 2018-07-17 10:43:06 · 198 阅读 · 0 评论 -
hdu 6195 cable cable cable
题目链接简单题,k个信号和m台主机,求需要多少条线缆,满足任选k台主机都能显示k种信号。一个信号要连(m-k+1)台主机,所以共需(m-k+1)*k条线缆,考虑数据范围,用long long#include<cstdio> int main(){ long long n,k; while(~scanf("%lld %lld",&n,&k)){ ...原创 2018-07-17 09:10:55 · 1065 阅读 · 0 评论 -
hdu 6186 CS Course
题目链接1、二进制位运算解法:计算0的个数,判断与或条件#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=1e5+5;int a[N],cnt[N];int main(){ int n,p; while(~scanf(...原创 2018-07-15 02:38:05 · 120 阅读 · 0 评论 -
hdu 6188 Duizi and Shunzi
题目链接顺子对子,前两个优先找对子,第三个优先考虑顺子#include<cstdio>#include<cstring>using namespace std;const int N=1e6+5;int a[N];int main(){ int n; int val,ans; while(~scanf("%d",&n)){ ans=0...原创 2018-07-15 02:40:33 · 118 阅读 · 0 评论 -
hdu 6182 A Math Problem
点击打开链接快速幂开个long long即可,也可以暴力,因为数据小于10^18,即k<16#include<cstdio>#include<cmath>using namespace std;typedef long long ll;ll quic_power(ll x,ll n){ //快速幂 ll result=1; for(;n;n...原创 2018-07-15 02:28:00 · 220 阅读 · 0 评论 -
hdu 6185 Covering
题目链接看到题就想起以前做过的类似多米诺骨牌相关的题目,想着应该是有递推式的,菜鸟的我就开始画图,画到废了废了,之后借助网上大佬博客的递推演算: 行数为4当n=2时,方案数为5;当n>2时,方案数可由5种情况组合: 第一种情况(第一列填充满): num1=f[n-1]; 第二种情况(前两列填充满): num2=f[n-2]; 第三种情况(根据列填充满判...原创 2018-07-15 02:30:14 · 141 阅读 · 0 评论 -
hdu 6217 BBP Formula
题目链接求PI的十六进制表示的小数点后第n位是多少,看其他博主说要求第n位,只需要把16进制下的小数点挪到第n-1位和第n位之间,即*16^(n-1),然后去掉整数部分,小数部分再乘16得到的整数部分即是第n位公式分解详解https://blog.youkuaiyun.com/meopass/article/details/78327614#include<cstdio>#in...原创 2018-07-18 20:20:44 · 235 阅读 · 0 评论 -
hdu 5882 Balanced Game
题目链接判断n种操作能否使n个人胜负概率都为50%简单思维题,即n-1次里一半胜一般负,所以n-1为偶数,即n为奇数才成立#include<cstdio>#include<cmath>int main(){ int t; scanf("%d",&t); while(t--){ int n; scanf("%d",&n); ...原创 2018-07-24 15:00:15 · 156 阅读 · 0 评论 -
hdu 5881 Tea
题目链接水容量在[L,R]的一壶水, 往两个杯子倒水, 满足杯子水体积几乎相同(体积的差不大于1), 并且使得壶里剩下水体积不大于1. 求需要倒水的次数最小值k。公式推导:第一次:k=1倒给第一个杯子L/2+0.5是比较合适的, (0.5是为了2k计算方便)第二次:k=2倒给第二个杯子L/2+0.5+1,之后:(前两次差1升,之后轮流倒2升,两杯保持差1升,满足题意...原创 2018-07-24 15:28:48 · 200 阅读 · 0 评论