多校第一场 费马小定理+模拟+组合数学

A题:Couple doubi

链接:http://acm.hdu.edu.cn/showproblem.php?pid=4861

这题逗逼了,刚开始根本就没什么思路,刚开始看题的时候有点像费马小定理,但是这个定理我只知道,然后没用过。看了下定义,有点不一样的是反着的,然后反着的我又不会转化,尼玛,就这样错过了最好的解题方法。然后队友又理解错题意了。WA了多发,然后我重新看了下题意,然后队友才发觉理解错题意了,然后找了规律才A。

代码比较短,就不贴了,真的写吧。

if(k/(p-1)&1) puts("YES");
else puts("NO");

D题:Task

链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864

这题刚开始想的时候想对了。就是把机器和任务放到同一个数组里,然后根据时间和等级从大到小排序,但是时间知道怎么取,但是等级的时候就不太知道了。所以不太敢敲,也不知道怎么处理那些时间都大,然后等级也大的时候取哪个。然后……然后刚刚知道怎么处理,但是又T了。看了琦神的,用multiset处理真是太机智了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
#include<queue>
#include<set>
#include<bitset>
#define INF 100007
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
struct abc
{
    int ti,le,ty;
}a[200005];
bool cmp(abc a,abc b)
{
    if(a.ti!=b.ti) return a.ti>b.ti;
    if(a.le!=b.le) return a.le>b.le;
    return a.ty>b.ty;
}
multiset<int>s;
int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        int i,j,cnt=0;
        ll sum=0,sum1=0;
        s.clear();
        for(i=0;i<n;i++)
            scanf("%d%d",&a[cnt].ti,&a[cnt].le),
            a[cnt++].ty=1;
        for(i=0;i<m;i++)
            scanf("%d%d",&a[cnt].ti,&a[cnt].le),
            a[cnt++].ty=0;
        sort(a,a+cnt,cmp);
        for(i=0;i<cnt;i++)
        {
            if(a[i].ty) s.insert(a[i].le);
            else
            {
                multiset<int>::iterator it=s.lower_bound(a[i].le);
                if(it!=s.end())
                    sum1++,sum+=500*a[i].ti+2*a[i].le,s.erase(it);
            }
        }
        printf("%I64d %I64d\n",sum1,sum);
    }
    return 0;
}

多校第一场 费马小定理+模拟+组合数学

时间: 2024-08-29 01:04:50

多校第一场 费马小定理+模拟+组合数学的相关文章

2014多校第一场 I 题 || HDU 4869 Turn the pokers(费马小定理+快速幂模)

题目链接 题意 : m张牌,可以翻n次,每次翻xi张牌,问最后能得到多少种形态. 思路 :0定义为反面,1定义为正面,(一开始都是反), 对于每次翻牌操作,我们定义两个边界lb,rb,代表每次中1最少时最少的个数,rb代表1最多时的个数.一张牌翻两次和两张牌翻一次 得到的奇偶性相同,所以结果中lb和最多的rb的奇偶性相同.如果找到了lb和rb,那么,介于这两个数之间且与这两个数奇偶性相同的数均可取到,然后在这个区间内求组合数相加(若lb=3,rb=7,则3,5,7这些情况都能取到,也就是说最后的

HDU 5793 A Boring Question (费马小定理) ---2016杭电多校联合第六场

A Boring Question Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 156    Accepted Submission(s): 72 Problem Description There are an equation.∑0≤k1,k2,?km≤n∏1?j<m(kj+1kj)%1000000007=?We define t

2019计蒜之道初赛第3场-阿里巴巴协助征战SARS 费马小定理降幂

题目链接:https://nanti.jisuanke.com/t/38352 发现规律之后就是算ans=2^(n-1)+4^(n-1).但是注意到n十分大是一个长度为1e5的数字.要想办法降幂. 我们观察费马小定理:a^(p-1)%p=1.发现对于质数取模,a^(p-1)是一个循环节(因为算出来等于1),可以忽略掉不算. #include<bits/stdc++.h> using namespace std; const int N=1e5+10; const int P=1e9+7; ty

POJ SETI 高斯消元 + 费马小定理

http://poj.org/problem?id=2065 题目是要求 如果str[i] = '*'那就是等于0 求这n条方程在%p下的解. 我看了网上的题解说是高斯消元 + 扩展欧几里德. 然后我自己想了想,就用了高斯消元 + 费马小定理.因为%p是质数,所以很容易就用上了费马小定理,就是在除法的时候用一次就好了.还有就是两个模数相乘还要模一次. #include <cstdio> #include <cstdlib> #include <cstring> #inc

[CodeVs1515]跳(lucas定理+费马小定理+乘法逆元)

嘿嘿嘿好久没写数学题了,偶尔看到一道写一写... 题目大意:一个(n+1)*(m+1)[0<=n, m<=10^12,n*m<=10^12]的矩阵,C(0,0)=1,C(x,y)=C(x-1,y)+C(x,y-1),求从0,0走到n,m路上最小权值(即为前面的C)和mod 10^9+7. 看到这个C(x,y)=C(x-1,y)+C(x,y-1),第一反应就是杨辉三角,所以这个矩阵其实就是一个由组合数组成的矩阵,第i行第j列的权值为C(i+j,j)[注意这个矩形起点是(0,0)]. 我们可

BZOJ_[HNOI2008]_Cards_(置换+Burnside引理+乘法逆元+费马小定理+快速幂)

描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1004 共n个卡片,染成r,b,g三种颜色,每种颜色的个数有规定.给出一些置换,可以由置换得到的染色方案视为等价的,求等价类计数. 分析 给出置换求等价类计数,用Burnside引理:等价类计数=(每一个置换不动点的和)/置换数.(不知道的建议去看白书) 其中不动点是指一个染色方案经过置换以后染色与之前完全相同. 1.求不动点个数. 不动点的话同一个循环内的每一个点的颜色必须相同(否则不同颜色

费马小定理是数论的基础理论之一

费马小定理 关于费马小定理,读到注解的时候,还是有点震撼的. 皮埃尔•得•费马(1601-1665)是现代数论的奠基人,他得出了许多有关数论的重要理论结果,但他通常只是通告这些结果,而没有提供证明.费马小定理是在1640年他所写的一封信里提到的,公开发表的第一个证明由欧拉在1736年给出(更早一些,同样的证明也出现在莱布尼茨的未发表的手稿中)费马的最著名结果——称为费马的最后定理——是l637年草草写在他所读的书籍<算术>里(3世纪希腊数学家丢番图所著),还带有一句注释“我已经发现了一个极其美

[ACM] hdu 3923 Invoker (Poyla计数,高速幂运算,扩展欧几里得或费马小定理)

Invoker Problem Description On of Vance's favourite hero is Invoker, Kael. As many people knows Kael can control the elements and combine them to invoke a powerful skill. Vance like Kael very much so he changes the map to make Kael more powerful. In

[ACM] hdu 3923 Invoker (Poyla计数,快速幂运算,扩展欧几里得或费马小定理)

Invoker Problem Description On of Vance's favourite hero is Invoker, Kael. As many people knows Kael can control the elements and combine them to invoke a powerful skill. Vance like Kael very much so he changes the map to make Kael more powerful. In