---恢复内容开始---

话说要学反演了,contest一题都搞不定,整理题目暂且搁置,数学笨蛋来学一下数学_(:з」∠)_

---恢复内容结束---

是的,预习看了半天教学,没有整理,做题又都不会,我能怎么办呢_(:з」∠)_我只能补题了呀

HDU-3903  结论题,易证

  首先由余弦定理,abc都是有理数所以cosA是有理数;然后由数学归纳法知cos nA也是有理数。cos(+)也可以化成一堆cos,所以分子是有理数。

  对于分母,我们可以由sin2+cos2=1直接得到sin2=4a2b2-(a2+b2-c22,因为显然原本的分母4a2b2为有理数,就减少运算吧。

  常用的判断无理数的方法:非完全平方数被开方,利用精度,通过sqrt后再平方判断是否在一定精度内相等来判断是否是完全平方数的开方,即是否为有理数。

  拍下乱码,为了精度全部开成了long long(๑•̀ㅂ•́)و✧

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
long long a, b, c, m, n, k; int main()
{
int t;
cin >> t;
while (t--) {
cin >> a >> b >> c >> m >> n >> k;
long long p,q;
p = * a*a*b*b - (a*a + b * b - c * c)*(a*a + b * b - c * c);
q = sqrt(1.00*p);
if (q*q == p)cout << "YES" << endl;
else cout << "NO" << endl; }
return ;
}

HDU-3903

HDU-6069  一个数可以拆分为一些素数的次方的乘积,并且这个数的不同因子的个数为各个次方加一的乘积

  意思是:n=p1a1p2a2……的不同因子个数为(a1+1)*(a2+1)……显然n的k次方会使(a*k+1)

  数据略大,同时给了提示即R与L的差值,发现差值可以编号。

  但是如果对每个i都查一遍表的话仍然会亡,“跳“”着来,即查一遍表,把符合条件的i都维护一遍,最后大家都获得了自己的因数_(:з」∠)_

  感谢https://www.cnblogs.com/stepping/p/7357193.html题解,让我明白了上面一点。

  //两三天后红小豆终于做出来这题,我不会告诉你t了多少次才找到那个假装自己是l的1,一度怀疑自己背的素数板子的速度(dying

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;
const ll mod = ;
ll l, r, k;
ll p[];
bool isp[];
ll ans[], n[];
int co; void pri()
{
for (int i = ; i < ; i++)
isp[i] = ;
co = ;
for (int i = ; i < ; i++) {
if (isp[i])p[co++] = i;
for (int j = ; j < co&&i*p[j] < ; j++) {
isp[i*p[j]] = ;
if (i%p[j] == )break;
}
}
return;
} int main()
{
pri();
int t;
cin>>t;
while (t--) {
cin>>l>>r>>k;
for (int i = ; i <= r - l; i++) { ans[i] = ; n[i] = l + i; }
for (int i = ; i < co; i++) {
ll h = (l / p[i])*p[i];
if (h < l)h += p[i];
for (ll j = h; j <= r; j += p[i]) {
ll q = ;
while (n[j - l] % p[i] == ) {
n[j - l] /= p[i];
q++;
}
ans[j - l] = ans[j - l] * (q*k + ) % mod;
}
}
ll a = ;
for (int i = ; i <= r - l; i++) {
if (n[i] > )ans[i] = ans[i] * (k + ) % mod;
a = (a + ans[i]) % mod;
}
cout<<a<<endl;
}
return ;
}

HDU-6069

  因为是自己又写了一遍,注意到了一些细节,比如作为起始点的h在循环j的时候也会用到,所以j要开longlong不然会re,最后那个循环放在一起纯属本人的连连看属性(没看上述题解的无视这条)owo。还有mod的时候*=和+最好不要用呢,会少mod的。最重要的一点是,有1无l,有l无1,切记切记_(:з」∠)_

HDU-5187  组合数 快速乘 快速幂

  搜题解的时候看到状压dp是非常懵的,然后发现那是兄弟题。。。

  快速乘快速幂我都懂,但是看不懂怎么就开始组合数求和了。。。总之manage to 理解了。

  首先要知道(0,n)+(1,n)+...+(n,n)=2^n。小括号是组合数的一种表达方式嗯。

  其次,这个东西可以这么理解:从n个数中选出0个数作为增序列(or减),剩下n个为减(or增)

                从n个数中选出1个数作为增,剩下n-1个为减……以此类推

  可以发现从0到n把全体序列单调增/减算了两次,所以最后再减2.(就是(1,n)和(n-1,n)的时候啦)(๑•̀ㅂ•́)و✧

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
typedef unsigned long long ull; ull mul(ull a, ull b,ull p)
{
ull ans = ;
while (b) {
if (b & ) { ans = (ans + a) % p; b--; }
a = (a + a) % p;
b >>= ;
}
return ans;
} ull pw(ull a, ull b,ull p)
{
ull ans = ;
while (b) {
if (b & ) { ans = mul(ans, a, p); b--; }
a = mul(a, a, p) ;
b >>= ;
}
return ans;
} int main()
{
ull n, p;
while (cin >> n >> p) {
if (n == ) {
if (p == )cout << << endl;
else cout << << endl;
continue;
}
cout << (pw(, n, p) - +p)%p << endl;
}
return ;
}

HDU-5187

  看到1e18就是想开ull。快乘快幂里面的b--其实不是必须的,在最后移位(除以2)的时候自然会被弄掉。还有特判情况结束记得return或者continue。

  重点是,有mod有减的时候,千万要,+mod再mod一次!!!

HDU-5019  gcd 分解因数

  有个循环的i要开ll,别的没什么。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long ll;
ll f[];
int co; ll g(ll a, ll b)
{ return b == ? a : g(b, a%b); } void de(ll n)
{
co = ;
for (ll i = ; i*i <= n; i++)
if (n%i == ) {
f[co++] = i;
if (i*i != n)f[co++] = n / i;
}
return;
} int main()
{
int t;
ll x, y, k;
cin >> t;
while (t--) {
for (int i = ; i <= ; i++)f[i] = ;
cin >> x >> y >> k;
ll n;
n = g(x, y);
de(n);
if (k > co) { cout << - << endl; continue; }
sort(f, f + co);
cout << f[co - k] << endl;
}
return ;
}

HDU-5019

[数]数学系列预习->补水题ver.的更多相关文章

  1. MCM/ICM2018美国大学生数学建模大赛D题翻译

    MCM/ICM2018美国大学生数学建模大赛D题翻译 2018年ICM问题D: 非使用汽油并在使用电力行驶的汽车(电量非空的) 由于环境和经济的原因,全球都在减少使用化石燃料,包括汽车汽油. 无论是受 ...

  2. 2018年中国研究生数学建模竞赛C题 二等奖 赛题论文

    2018年中国研究生数学建模竞赛C题 对恐怖袭击事件记录数据的量化分析 恐怖袭击是指极端分子或组织人为制造的.针对但不仅限于平民及民用设施的.不符合国际道义的攻击行为,它不仅具有极大的杀伤性与破坏力, ...

  3. [动态规划]高数Umaru系列(9)——哈士奇(背包问题)

    高数Umaru系列(9)——哈士奇 http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/3358.ht ...

  4. [数]补题ver.

    上次补题好像把两次训练混在一起了,总之先按时间顺序补完这一次|ू・ω・` ) HDU-6301 不会的东西不能逃避.jpg 红小豆非常讨厌构造题,因为非常不会,并且非常逃避学习这类题,因为总也搞不清楚 ...

  5. 【LeetCode】数学(共106题)

    [2]Add Two Numbers (2018年12月23日,review) 链表的高精度加法. 题解:链表专题:https://www.cnblogs.com/zhangwanying/p/979 ...

  6. 数的划分(NOIP2001&水题测试2017082401)

    题目链接:数的划分 这题直接搜索就行了.给代码,思路没什么好讲的,要讲的放在代码后面: #include<bits/stdc++.h> using namespace std; int d ...

  7. BZOJ4408: [Fjoi 2016]神秘数【主席树好题】

    Description 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数.例如S={1,1,1,4,13}, 1 = 1 2 = 1+1 3 = 1+1+1 4 = 4 5 = ...

  8. [luogu]P1066 2^k进制数[数学][递推][高精度]

    [luogu]P1066 2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻 ...

  9. 丑数<数学技巧>

    题意:丑数就是质因子只有2,3,5 ,7,的数,另外1也是丑数.求第n(1=<n<=5842)个丑数,n=0,结束. 思路:.3.5或者7的结果(1除外).那么,现在最主要的问题是如何排序 ...

随机推荐

  1. tee命令使用

    需求描述: 今天在看nginx内容的过程,遇到了tee这个命令,所以查询了下,在这里记录下使用方法. 操作过程: 1.执行以下的命令 [root@testvm ~]# uname -n | tee h ...

  2. 误删除(重命名)libc.so.6的处理方法

    LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 ssh尚未断开的话可以直接这样操作,断开之后可以用l ...

  3. phtyon

    https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316399410395 ...

  4. PyGame实现情人节表白利器

    前提:写不出那么那个的话哇,随便写写,随便看看,重在代码(文章末尾有免费完整源代码) 实验环境: pygame 1.9.4 pycharm python3.6 实现思路: pygame.display ...

  5. tcp的三次握手,四次挥手

    为了更好的记住知识点,所以将最近学习的知识点记录下来: 最开始A和B都处于closed(关闭连接状态) 1.tcp的第一次握手:客户端A  向服务器端B 发送请求连接报文段(包含SYN=1,初始序号s ...

  6. 异常处理与网络基础中的tcp,udp协议

    # 异常处理: # 什么是异常?异常和错误的区别 # Error 语法错误 比较明显的错误 在编译代码阶段就能检测出来 # Iteration 异常 在执行代码的过程中引发的异常 # 异常发生之后的效 ...

  7. hiho#1513 : 小Hi的烦恼 五维偏序

    hiho#1513 : 小Hi的烦恼 五维偏序 链接 hiho 思路 高维偏序用bitset,复杂度\((\frac{n^2}{32})\) 代码 #include <bits/stdc++.h ...

  8. Unity3D里怎样隐藏物体

    方法很多: 1.改position,移到视野外,推荐,最节省 2.gameObject.SetActive (false); //要提前引用,要不你就改不回来了... 3.renderer.enabl ...

  9. Vue-admin工作整理(三):路由

    1.router-link和router-view组件 router-link组件实际上是封装了一个a标签(链接标签),里面有一个重要属性:“to”,它的值是一个路径,其路径对应的渲染组件,要在路由列 ...

  10. Docker Swarm集群中部署Traefik负载均衡器

    一.创建单节点的Docker Swarm集群 docker swarm init 二.在Swarm集群中创建一个网络 docker network create --driver=overlay tr ...