<<表示主机推送到显示器 >>表示键盘到主机
课件再林大oj ->download里
RE:数组开小,越界(运行时出错)
推荐sort
小数组稳定,大数组不稳定
argc表示参数个数
然后一个字符串,linux可以直接跑
data+5
理解:
1.左闭右开
2.五个
单独写也可以:多重排序(年月日)
cmp函数
排序题:
周期:记忆数组或递归
数很大:正确分析复杂度,水题能过就行
1e8太大了
最重要的问题:每次A,B在变,记忆数组不行
下面是错误代码:引以为戒
#include<bits/stdc++.h>
using namespace std;
int longer=1e8;
int a[200000005];
int f(int A,int B,int n)
{
if(n==1||n==2)
{
return 1;
}
if(a[n]!=0)
{
return a[n];
}
a[n]=(A*f(A,B,n-1)+B*f(A,B,n-2))%7;
return a[n];
}
int main()
{
a[1]=1;
a[2]=1;
int A,B,n;
while(cin>>A>>B>>n)
{
cout<<f(A,B,n)<<endl;
}
return 0;
}
当一个数,对另一个书取余的时候必有循环节
处理mod,在300之内就好
周期是六
动态输入A,B;
动态找出循环节
也就是又出现两个1的时候(f0,f1为1)
变成周期内的数
取mod为0时是最后一个位置
找循环节:取余数就不是很大
1e9就别暴力了
LL:1e91e91e9,溢出了
1.n*(n+1)一定是偶数,/2,/3分开
然后看能不能除3,能除开就除,出不开2n+1一定能(不可能出小数)
剩下的三个一边取余,一边相乘
(a*b)%c=[a%c * b%c]%c
更好的:逆元:
6的逆元xn(n+1)(2n+1)
6x + 1007 y =1
最小整数解,x就是对6的逆
x往里代,取余再相乘
就是能除多少个5,看有多少个除五为0的数
亚洲赛原题
map很快
输出不唯一
1.结构体
2.二维数组
3.链表(往第十个里插)
跑两圈
!!!!!!!!!!!!!
给好的二分
1.还是左开右闭
2.要减首地址