快速幂及邻接表的一些小技巧

 1 #include<stdio.h>
 2 int fun(int a,int b){
 3     int ans=1;
 4     while(b){
 5         if(b&1)ans*=a;
 6             a*=a;
 7             b>>=1;
 8     }
 9     return ans;
10 }
11 int main(){
12     int m,n;
13     while(~scanf("%d%d",&m,&n))printf("%d\n",fun(m,n));
14     return 0;
15 }

邻接表:

 1 #include<stdio.h>
 2 #include<string.h>
 3 char head[100100],cnt;
 4 struct s
 5 {
 6     int u,v,w;
 7     int next;
 8 }edge[100010];
 9 void add(int u,int v,int w)
10 {
11     edge[cnt].u=u;
12     edge[cnt].v=v;
13     edge[cnt].w=w;
14     edge[cnt].next=head[u];
15     head[u]=cnt++;
16 }
17 int main()
18 {
19     int n;
20     while(scanf("%d",&n)!=EOF)
21     {
22         int i;
23         cnt=0;
24         memset(head,‘-‘,sizeof(head));
25         for(int i=0;i<100;i++)printf("%c ",head[i]);
26         for(i=0;i<n;i++)
27         {
28             int u,v,w;
29             scanf("%d%d%d",&u,&v,&w);
30             add(u,v,w);
31         }
32         int u;
33         scanf("%d",&u);
34         for(i=head[u];i!=-1;i=edge[i].next)
35         {
36             int v=edge[i].v;
37             int w=edge[i].w;
38         }
39     }
40     return 0;
41 }
时间: 2024-08-03 12:13:28

快速幂及邻接表的一些小技巧的相关文章

HDU4887_Endless Punishment_BSGS+矩阵快速幂+哈希表

2014多校第一题,当时几百个人交没人过,我也暴力交了几发,果然不行. 比完了去学习了BSGS才懂! 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4887 Endless Punishment Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 52    Accepted Submissi

大表DROP删除小技巧

在日常工作中,经常会遇到历史大表从主库上迁移到备份机,以便腾出主库空间,那么如果你直接drop table 后,可能会引起数据库抖动,连接数升高等问题,从而影响业务. 那么用一个小技巧,即可轻松平滑的从主库上删除历史大表. 1.创建一个硬链接,在drop table 表时,"欺骗"MySQL已经删除完毕. ln test.ibd test.ibd.hdlk 2.这个时候不要直接rm test.ibd.hdlk,这样会引起磁盘IO转速上升,MySQL会发生性能抖动. 我们这里写一个脚本,

Android课程---Android Studio使用小技巧:提取方法代码片段

这篇文章主要介绍了Android Studio使用小技巧:提取方法代码片段,本文分享了一个快速复制粘贴方法代码片段的小技巧,并用GIF图演示,需要的朋友可以参考下 今天来给大家介绍一个非常有用的Studio Tips,有些时候我们在一个方法内部写了过多的代码,然后想要把一些代码提取出来再放在一个单独的方法里,通常我们的做法是复制粘贴,现在我来教给大家一个非常简洁的方法,先看下gif演示吧:

hdu 4549 M斐波那契数列(快速幂 矩阵快速幂 费马小定理)

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4549: 题目是中文的很容易理解吧.可一开始我把题目看错了,这毛病哈哈. 一开始我看错题时,就用了一个快速幂来解,不用说肯定wa,看题目的通过率也不高,我想会不会有啥坑啊.然而我就是那大坑,哈哈. 不说了,直接说题吧,先讨论k=1,2,3;时的解.这应该会解吧,不多说了: 从第四项开始f(4)=a^1+b^2;f(5)=a^2+b^3;f(6)=a^3+b^5......; 看出来了吧,a上的指数成斐波

SDUTOJ Crack Mathmen(模拟,哈希表,快速幂)

题目连接:传送门 这一题是我们昨天省赛集训的题目,我可给坑惨了.不过所幸没有给白坑,学到了一些东西.最有感触的是这个 for(int i = 0 ; i < strlen(str); i++) //危险,切勿模仿 如果数组大一些,这样写就直接超时.我之前找了好久都没发现,最后学长告诉我把他写成这样 int len = strlen(str); for(int i = 0 ; i < len; i++) 为什么呢?原因是如果数组较大的话,那么就要计算 strlen(str)次的str的长度,这样

ACM-ICPC 2018 焦作赛区网络预赛 G. Give Candies (打表找规律+快速幂)

题目链接:https://nanti.jisuanke.com/t/31716 题目大意:有n个孩子和n个糖果,现在让n个孩子排成一列,一个一个发糖果,每个孩子随机挑选x个糖果给他,x>=1,直到无糖果剩余为止.给出数字n,问有多少种分发糖果的方法. 样例输入 复制 1 4 样例输出 复制 8 解题思路:我们可以这样想,一个糖果的话,应该是只有1种方法记为x1,如果是两个糖果的话,有两种方法即为x2,分别为(1,1)和(2),从中我们可以想到如果n个糖果的话,就可以分为第n个人取1个的话就有x(

hdu 4704 Sum (整数和分解+快速幂+费马小定理降幂)

题意: 给n(1<n<),求(s1+s2+s3+...+sn)mod(1e9+7).其中si表示n由i个数相加而成的种数,如n=4,则s1=1,s2=3.                         (全题文末) 知识点: 整数n有种和分解方法. 费马小定理:p是质数,若p不能整除a,则 a^(p-1) ≡1(mod p).可利用费马小定理降素数幂. 当m为素数,(m必须是素数才能用费马小定理) a=2时.(a=2只是题中条件,a可以为其他值) mod m =  *      //  k=

HDU 小明系列故事——师兄帮帮忙 快速幂

小明系列故事--师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 4850    Accepted Submission(s): 1275 Problem Description 小明自从告别了ACM/ICPC之后,就开始潜心研究数学问题了,一则可以为接下来的考研做准备,再者可以借此机会帮助一些同学,尤其是漂亮的师妹.这不,班

hdu 4549 (矩阵快速幂+费马小定理)

题意:已知F0=a,F1=b,Fn=Fn-1*Fn-2,给你a,b,n求Fn%1000000007的值 思路:我们试着写几组数 F0=a F1=b F2=a*b F3=a*b2 F4=a2*b3 F5=a3*b5 我们发现a,b的系数其实是斐波那契数列,我们只需用矩阵快速幂求出相应系数就行,但是 这个系数随着增长会特别大,这时我们需要利用费马小定理进行降幂处理 费马小定理 ap-1≡1(mod p) 代码: #include <iostream> #include <cmath>