蓝桥杯省赛知识点模板复习及知识点(仅复习)
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1010;
int n,m;
int v[N],w[N];
int f[N][N],f[N];
int main()
{
for(int i=1;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
f[i][j]=f[i-1][j];
if(j>v[i])f[i][j]=max(f[i][j],f[i-1][j-v[i]]+w[i]);
}
}
for(int i=1;i<=n;i++)
{
for(int j=m;j>=v[i];j--)
{
f[j]=max(f[j],f[j-v[i]]+w[i]);
}
}
for(int i=1;i<=n;i++)
{
for(int j=v[i];j<=m;j++)
{
f[j]=max(f[j],f[j-v[i]]+w[i]);
}
}
string a,b;
while(cin>>a>>b)
{
int a1[1001]={0},b1[1001]={0},c[1001]={0},ans=0;
for(int i=0;i<a.size();i++)a1[i]=a[a.size()-i-1]-'0';
for(int i=0;i<b.size();i++)b1[i]=a[b.size()-i-1]-'0';
while(ans<a.size()||ans<b.size())
{
c[ans]+=a1[ans]+b1[ans];
if(c[ans]>=10)
{
c[ans]-=10;
c[ans+1]+=1;
}
ans++;
}
if(c[ans]==0)ans--;
for(int i=ans;i>=0;i--)cout<<c[i];
cout<<endl;
}
return 0;
bool prime[N]
for(int i=2;i<=1e5;i++)prime[i]=1;
for(int i=2;i<=1e5;i++)
{
if(prime[i])
{
for(int j=i*2;j<=1e5;j+=i)
{
prime[j]=0;
}
}
}
int st[N];
int prime[N];
int ans;
for(int i=2;i<=1e7;i++)
{
if(!prime[i])st[++ans]=i;
for(int j=1;i*st[j]<=1e7;j++)
{
prime[i*st[j]]=1;
if(i%st[j]==0)break;
}
}
int gcd(int x,int y)
{
if(y==0)
{
return x;
}else{
return gcd(y,x%y);
}
}
int s[N][N];
int n,m,q;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>s[i][j];
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
}
cin>>q;
while(q--)
{
int x1,x2,y1,y2 ;
cin>>x1>>y1>>x2>>y2;
cout<<s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]<<endl;
cout<<s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]<<endl;
cout<<s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]<<endl;
}
}
int fun(int n)
{
if(f[n])return f[n];
if(n<2)return f[n]=n;
return f[n]=fun(n-1)+fun(n-2);
}
if(l<r)
{
int mid=l+r>>1;
if(check(mid))r=mid;
else l=mid+1;
}
if(l<r)
{
int mid=l+r+1>>1;
if(check(mid))l=mid;
else r=mid-1;
}
if(r-l>1e-5)
{
double mid=(r+l)/2;
if(check(mid))l=mid;
else r=mid;
}
int a[]={1,2,3,4,5};b[]={5,4,3,2,1};
upper_bound(a,a+5,3)-a;
lower_bound(a,a+5,3)-b;
int a,b;
cin>>a>>b;
while(b)
{
int ans=1;
if(b&1)ans=ans*a%mod;
a=a*a;
y>>=1;
}
void read()
{
char ch;
int i=0;
while((ch==getchar())&&ch!=EOF)
{
str[i++]=ch;
}
}
int h[N],e[N],ne[N],idx;
memset(h,-1,sizeof(h));
void add(int a){
e[idx]=a,ne[idx]=head,head=idx++;
}
void add(int a,int b){
e[idx]=b;
ne[idx]=ne[a];
ne[a]=idx++;
}
void remove(int a){
ne[a]=ne[ne[a]];
}
init(){
for(int i=1;i<=n;i++){
f[i][0]=a[i];
}
for(int k=1;k<20;k++){
for(int i=1;i+(1<<k-1)<=n;i++){
f[i][k]=max(f[i][k-1],f[i+(1<<k-1)][k-1]);
}
}
}
int query(int x,int y){
int k=log2(y-x+1);
return max(f[x][k],f[y-(1<<k)+1][k]);
}
int a[N];
int f[N][25];
cin>>a[N];
init();
cout<<query(1,15);
string a;
int b;
int fun(string x,int y){
int t=x.size();
int ret=0;
for(int i=0;i<t;i++){
ret=ret*y+(x[i]-'0');
}
}
int main(){
cina>>b;
int c=fun(a,b);
cout<<c;
}
void bfs()
{
queue<pair<int,int>> p;
queue<int> p;
p.push();
while(!p.empty()){
int x=p.front();
int x=p.front().first;
int y=p.front().second;
p.pop()
}
}
int d[N];
vector<int> e[N],tp;
int n;
bool tpsort(){
queue<int> p;
for(int i=1;i<=n;i++){
if(d[i]==0)p.push(i);
}
while(!p.empty()){
int x=p.front();p.pop();
tp.push_back(x);
for(auto ed:e){
if(--din[ed]==0)p.push(ed);
}
}
return tp.size()==n;
}
int main(){
int m;
int a,b;
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>a>>b;
e[a].push_back(b);
d[b]++;
}
if(!tpsort())cout<<-1;
else cout<<"Yes";
}
int n,m;
int a,b,c;
struct node{
int x,y,z;
};
vector<node> e[N];
priority_queue<pair<int,int>> p;
bool vis[N];
int d[N];
void dijkstra(int t){
for(int i=1;i<=n;i++)d[i]=1e9;
d[t]=0;
p.push({0,t});
while(!p.empty()){
int x=p.top().first;
int y=p.top().second;
p.pop();
if(vis[y])continue;
vis[y]=1;
for(auto ed:e[y]){
int tx=ed.x,ty=ed.y;
if(d[tx]>d[y]+ty){
d[tx]=d[y]+ty;
p.push(-d[tx],tx);
}
}
}
}
int main(){
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>a>>b>>c;
e[a].push({b,c});
e[b].push({a,c});
}
int k;
dijkstra(k);
}
int cnt[N];
bool spfa(int a){
queue<int> p;
memset(d,0x3f,sizeof(d));
d[a]=0;vis[a]=1;p.push(a);
while(!p.empty()){
int x=p.front();p.pop();vis[x]=0;
for(auto ed:e[x]){
int tx=ed.x,ty=ed.y;
if(d[tx]>d[x]+ty){
d[tx]=d[x]+ty;
cnt[tx]=cnt[x]+1;
if(cnt[tx]>n)return true;
if(!vis[tx])p.push(tx),vis[tx]=1;
}
}
return false;
}
}
int d[N][N];
void floyd(){
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
}
}
}
}
cin>>n>>m;
memset(d,0x3f,sizeof(d));
for(int i=1;i<=n;i++)d[i][i]=0;
for(int i=0;i<m;i++){
cin>>a>>b>>c;
d[a][b]=min(d[a][b],c);
}
floyd();
int f[N];
int fun(int x){
if(x!=f[x])f[x]=fun(f[x]);
return f[x];
}
for(int i=1;i<=n;i++)f[i]=i;
f[fun(a)]=fun(b);
}
写的是核心代码模板,考前看一看,回顾一下。