两个n次多项式相加最直接的方法所需时间为O(n),但是相乘最直接的方法所需时间为O(n2)。
快速傅里叶变换(Fast Fourier Transform,FFT)是一种可在 O(n log n)时间内完成的离散傅里叶变换(Discrete Fourier transform,DFT)算法,在 OI 中的主要应用之一是加速多项式乘法的计算。
pb_ds??
平板电视??
pb_ds是G++编译器默认附带的一个扩展库,全称是Policy-Based Data Structures(官方传送门)…
pb_ds库里含有许多数据结构,如HashTable,trie,rb_tree,priority_queue…
N 个景区,任意两个景区之间有一条或多条双向的路来连接,现在 Mr.Zeng 想找一条旅游路线,这个路线从 A 点出发并且最后回到 A 点,假设经过的路线为 V1,V2,….VK,V1,那么必须满足 K>2,就是说至除了出发点以外至少要经过 2 个其他不同的景区,而且不能重复经过同一个景区。不存在这样的景区 X:从 X 出发不到达其他景区马上回到 X。现在 Mr.Zeng 需要你帮他找一条这样的路线,并且长度越小越好。
第一行包含两个正整数:景区个数 N(N<=100),另一个是道路的数目 M(M<10000)。
接下来 M 行每行描述一条路,每一行有三个正整数 A,B,C,其中 A 和 B 分别表示这条路连接的两个景区的编号,C 表示这条路的长度(不超过500的正整数)。
如果这条观光路线是不存在的话就显示“No solution.”(有句号);
如果这条观光路线存在就输出经过的最小长度。
中考成绩出来了,许多考生想知道自己成绩排名情况,于是考试委员会找到了你,让你帮助完成一个成绩查找程序,考生只要输入成绩,即可知道其排名及同名次的人有多少。
第一行一个正整数 n(1<=n<=1500),表示一共有 n 个考生;
第二行一个正整数 k(1<=k<=n),表示一共有 k 个待查分数;
第三行 n 个数是以空格隔开的从大到小排列的 n 个学生成绩;
第四行 k 个数是待查的成绩。
共输出 k 行,每行三个数,分别用一个空格隔开:第一个数为待查成绩所对应的名次;第二个数为同名次的人数;第三个数为分数高于该成绩的人数。
若查找不到,本行只输出一个单词“fail!”(fail后面加一个惊叹号,引号不输出)。
Update your browser to view this website correctly. Update my browser now