//百钱买百鸡
#include<iostream>
using namespace std;
int main(){
for(int i=0;i<=100;i++){
for(int j=0;j<=100;j++){
for(int k=0;k<=100;k+=3){
if(i5+j3+k/3100 && i+j+k100){
cout<<i<<" "<<j<<" "<<k<<endl;
}
//n钱买n鸡
#include<iostream>
using namespace std;
int main(){
int n,cnt=0;
cin>>n;
for(int i=0;i<=n;i++){
for(int j=0;j<=n;j++){
int k=n-i-j;
if(k%30&&i5+j3+k/3n&&i+j+k==n){//主要变化在这,所有100变成n
cnt++;
}
//小蚂蚁吃米
#include<iostream>
using namespace std;
int main(){
int n,a[100050]={0},s[100050]={0},q;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
s[i]=s[i-1]+a[i];
}
//素数个数
#include<iostream>
using namespace std;
int a[4000050],ans;
int main(){
int n;
cin>>n;
for(int i=2;i<=n;i++){
if(a[i]==0){
ans++;
for(int j=2*i;j<=n;j+=i) a[j]=1;
}
//质数入表
#include<iostream>
using namespace std;
int a[100000050],p[100000050],l;
int main(){
int n;
cin>>n;
for(int i=2;i<=n;i++){
if(a[i]==0) p[l]=i;
for(int j=1;j<=l;j){
if(1LLip[j]>n) break;
a[i*p[j]]=1;
if(i%p[j]==0) break;
}
}
//撒金币
#include<iostream>
using namespace std;
int main(){
//前缀和数组可以在频繁区间求和时,优化程序 0[n]->0(1)
long long n,k,a[1000010]={0},s[1000010]={0};
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
//前i数的和,等于前i-1个数的和,加上第i个数
s[i]=s[i-1]+a[i];
}
//薄冰算法
#include<iostream>
using namespace std;
int main(){
long long n,cnt=0;
cin>>n;
while(n!=1){
//在n等于1前不停止循环
cnt++;
//每进一次循环cnt就+1
if(n%21){
//如果n/21,如果n是奇数3+1
n=n3+1;
}else{
n=n/2;
//如果n/2不等于1,那就是偶数,/2
}
}
cout<<cnt+1;
return 0;
}
//二分法,左右端点砍半
#include<iostream>
using namespace std;
int main(){
int n,a[110],x;
cin>>x;
//确定左右端点LR,区间范围
int l=1,r=n;
while(l<r){//重复执行2,3,直到区间左右端点LR重合
//2.取出中间的数字,与目标值比较,
int mid=(l+r)/2;//如果为L=mid需要加1
//3.根据比较结果,缩短区间范围为原范围一半
if(a[mid]>=x){
r=mid;
}else{//a[mid]<x
l=mid+1;
}
}
if(a[l]!=x)cout<<-1;
else cout<<l;
return 0;
}
//平均分
#include<iostream>
using namespace std;
int a[105][105];
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
int sum =0,cnt=0;
double ave=0;
for(int j=0;j<m;j++){
cin>>a[i][j];
sum+=a[i][j];
}
//函数传参
#include<iostream>
using namespace std;
int is_prime(int x){
if(x<2)return 0;
for(int =02;i<=sqrt(x);i++){
if(x%i==0)return 0;
}
int main(){
int n;
cin>>n;
if(is_prime(n)=1) cout<<"YES";
else cout<<"NO";
return 0;
}
//递归
#include<iostream>
using namespace std;
int num_sum(int x){
if(x1)return 1;
return num_sum(x-1)+x;
}
int main(){
int n;
cin>>n;
cout<<num_sum(n);
return 0;
}
//斐波那契数列
#include<>iostream>
using namespace std;
int f(int x){
if(x1||x2) return 1;
if(x3)return 2;
return f(x-1)+f(x-2);
}
int main(){
int n;
cin>>n;
cout<<f(n);
return 0;
}
//统计字符个数
#include <iostream>
using namespace std;
int a[60];
int main(){
string s;
cin>>s;
for(int i=0;i<s.size();i++){
int b=s[i]-96;
a[b];
}
for(int i=1;i<=26;i){
if(a[i]!=0){
char c=i+96;
cout<<c<<":"<<a[i]<<endl;
}
}
return 0;
}
//递推
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,a[100]={0,1,1};
cin>>n;
for(int i=3;i<=n;i++){
a[i]=a[i-1]+a[i-2];
}
cout<<a[n];
return 0;
}
//深搜
int n,m.sx.sy;
cin>>n>>m>>sx>>sy;
//右
if(sy+1>m)cout<<-1<<endl;
else cout<<sx<<" "<<sy+1<<endl;
//左
if(sy-1<1)cout<<-1<<endl;
else cout<<sx<<" "<<sy-1<<endl;
//下
if(sy+1>n)cout<<-1<<endl;
else cout<<sx+1<<" "<<sy<<endl;
//上
if(sy-1>n)cout<<-1<<endl;
else cout<<sx<<" "<<sy-1<<endl;
//递推移动
using namespace std;
int n,m,sx,sy,fx,fy,flag,v[20][20];
int dx[]={-1,1,0,0};
int dy[]={0,0,-1,1};
void dfs(int nx,int ny){
}
int main(){
}
//最小值
#include<iostream>
using namespace std;
int main(){
int n;
int s[1010];
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i];
}
int maxx=10000,max_n;
for(int i=1;i<=n;i++){
if(s[i]<maxx){
maxx=s[i];
max_n=i;
}
}
cout<<maxx<<endl<<max_n;
return 0;
}
//不用斐波那契数列表达斐波那契
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,a[100]={0,1,1};
cin>>n;
for(int i=3;i<=n;i++){
a[i]=a[i-1]+a[i-2];
}
cout<<a[n];
return 0;
}
//前缀和
s[5]
s[3]
取s列表中15,13的值然后加起来;
//前缀和应用
#include<iostream>
using namespace std;
long long a[1000005]={0},s[1000010]={0};//足够长的全局变量
int main(){
long long n,k;//局部变量
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
s[i]=s[i-1]+a[i];//取列表值并相加
}
for(int i=1;i<=k;i++){
int l,r;
cin>>l>>r;
cout<<s[r]-s[l-1]<<endl;//取列表值相减
}
return 0;
}
//链表
顺序存储是连续存储,在内存条中是必须连在一起的
链表存储是跳跃存储,不需要连在一起依旧能够启用
链式结构每个单元都有存储数据和下一个存储数据的位置
struct node {
int data//存储数据的数据域
node *next//指针域,标识下一个位置去哪
};
int a;//定于整形变量
cin>>a;//输入a的值
cout<<a<<endl;//打印a的值->3
cout<<&a<<endl;//输出a的地址
int *p =&a;//指针变量p存储a的地址
cout<<*p<<endl; //根据p中存储的地址,找到地址中的元素3
node *head;//定义头节点
head=new node;//使用new关键字申请内存空间
head->data=1//使用“->”来访问节点内部成员
head->next =NULL//指针域初始化为空,表示没有下一个节点
//添加新结点//重复添加节点的话
while
node*ha;//定义结点
ha=new node;//动态申请内存空间
ha->data=2;//赋值数据域
ha->nex=NULL;//赋值指正域
head->next =ha;//将新结点ha连接在head后面
node *tail=head;//尾指针初始化为结点
tail=ha;//更新尾指针
he->data=4;//赋值数据域
ha->next=he;//he连接到ha的后面
he->next=hc;//hc连接到he的后面
delete he;//删除he结点
tail->next=head;//将尾指针连接到首指针
//sort
#include<iostream>
using namespace std;
int main(){
a[10]={2,1,3,5,2,5,6,7,5,1};
sort(开始地址,结束地址的下一个地址);
&a[0],&a[10]
a a+n
a+1 a+1+n
}
//糖果
#include<iostream>
#include<alogorithm>
using namespace std;
int main(){
long long n,a[1001]={0},cnt=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[1]
}
sort(a+1,a+1+n;cmp);
}
//早餐
#include<iostream>
#include<cstdio>
using namespace std;
int x[100005];
int main(){
int n,maxx=0;minn=1000000,eat;
cin>>n;
for(int i=0;i<n;i++){
cin>>x[i];//AC狗位置
}