日记.

接下来的一个月的时间内准备一天完成6道题

具有针对性的完成 

五道题大致为下:  1.  一道CF 1400~1700

        2.  一道背包dp(背包完成后会针对性的进行其他的动态规划) 

        3.  一道图论(单源,多源最短路, 最小生成树,差分约束,树的重心,求最长路以及最短路,拓扑排序)

        4.  一道数论(gcd,lcm,博弈论,各种定理等等)

        5.  一道基础优化(st表,树状数组,逆序对,前缀和等等)

        6.  一道暴力,枚举(具体从CF上找)

 

Day 1.( 24-2-29 )

 第一天的大多数都是板子题,主要是拿来练练手,中间穿插了两道简单的背包,然后和我新学的裴蜀定理

 今天还是2.29号,4年轮一次,据说,今天还是星期四,kfc的疯狂星期四并且还是2.29的要28年轮一次,拉满了 

//【模板】最小生成树 https://www.luogu.com.cn/problem/P3366
// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// int p[N],n,res,m,cnt;
// int find(int x){
//     if(x!=p[x]) p[x]=find(p[x]);
//     return p[x];
// }
// struct node{
//     int u,v,w;
//     bool operator<(const node&W) const{
//         return w<W.w;
//     }
// }tr[N];
// signed main()
// {
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//     cin>>n>>m;
//     for(int i=1;i<=n;i++) p[i]=i;
//     for(int i=1;i<=m;i++){
//         int a,b,c; cin>>a>>b>>c;
//         tr[i]={a,b,c};
//     }
//     sort(tr+1,tr+1+m);
//     for(int i=1;i<=m;i++){
//         int u=tr[i].u,v=tr[i].v,w=tr[i].w;
//         if(find(u)!=find(v))
//             p[find(u)]=find(v),res+=w,cnt++;
//     }
//     if(cnt<n-1) cout<<"orz"<<endl;
//     else cout<<res;
//     return 0;
// }

//dijkstra
// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// typedef pair<int,int>pii;
// int n,m,st,dist[N];
// int e[N],ne[N],h[N],w[N],idx;
// bool vis[N];
// void add(int a,int b,int c){
//     e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;
// }
// void dijkstra(){
//     priority_queue<pii,vector<pii>,greater<pii>>que;
//     que.push({0,st}),dist[st]=0;
//     while(!que.empty()){
//         auto now=que.top();que.pop();
//         int dis=now.first,id=now.second;
//         if(vis[id]) continue; vis[id]=true;
//         for(int i=h[id];~i;i=ne[i]){
//             int j=e[i];
//             if(dist[j]>dis+w[i]){
//                 dist[j]=dis+w[i];
//                 que.push({dist[j],j});
//             }
//         }
//     }
// }
// signed main()
// {
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//     cin>>n>>m>>st;
//     memset(h,-1,sizeof h);
//     for(int i=1;i<=n;i++) dist[i]=2147483647;
//     for(int i=1;i<=m;i++){
//         int a,b,c; cin>>a>>b>>c;
//         add(a,b,c);
//     }
//     dijkstra();
//     for(int i=1;i<=n;i++) cout<<dist[i]<<' ';
//     return 0;
// }

//spfa
// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// int dist[N],n,m,res,st;
// int e[N],ne[N],h[N],w[N],idx;
// bool vis[N];
// void add(int a,int b,int c){
//     e[idx]=b,ne[idx]=h[a],w[idx]=c,h[a]=idx++;
// }
// void spfa(){
//     queue<int>que;
//     que.push(st),dist[st]=0,vis[st]=true;
//     while(!que.empty()){
//         int now=que.front(); que.pop();
//         vis[now]=false;
//         for(int i=h[now];~i;i=ne[i]){
//             int j=e[i];
//             if(dist[j]>w[i]+dist[now]){
//                 dist[j]=dist[now]+w[i];
//                 if(!vis[j]) que.push(j),vis[j]=true;
//             }
//         }
//     }
// }
// signed main()
// {
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//     cin>>n>>m>>st;
//     memset(h,-1,sizeof h);
//     for(int i=1;i<=n;i++) dist[i]=2147483647;
//     for(int i=1;i<=m;i++){
//         int a,b,c; cin>>a>>b>>c;
//         add(a,b,c);
//     }
//     spfa();
//     for(int i=1;i<=n;i++) cout<<dist[i]<<' ';
//     return 0;
// }

//负环
// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// int n,m,st,dist[N],cnt[N];
// int e[N],ne[N],h[N],idx,w[N];
// bool vis[N];
// void add(int a,int b,int c){
//     w[idx]=c,e[idx]=b,ne[idx]=h[a],h[a]=idx++;
// }
// bool spfa(){
//     queue<int>que;
//     que.push(1),dist[1]=0,vis[1]=true;
//     while(!que.empty()){
//         int now=que.front(); que.pop();
//         vis[now]=false;
//         for(int i=h[now];~i;i=ne[i]){
//             int j=e[i];
//             if(dist[j]>w[i]+dist[now]){
//                 dist[j]=w[i]+dist[now];
//                 cnt[j]=cnt[now]+1;
//                 if(cnt[j]>=n) return true;
//                 if(!vis[j]) vis[j]=true,que.push(j);
//             }
//         }
//     }
//     return false;
// }
// void solve(){
//     cin>>n>>m;
//     idx=0;
//     memset(cnt,0,sizeof cnt);
//     memset(vis,false,sizeof vis);
//     memset(h,-1,sizeof h);
//     memset(dist,0x7f,sizeof dist);
//     for(int i=1;i<=m;i++){
//         int a,b,c; cin>>a>>b>>c;
//         if(c>=0) add(a,b,c),add(b,a,c);
//         else add(a,b,c);
//     }
//     cout<<(spfa()?"YES":"NO")<<endl;
// }
// signed main(){
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int t;cin>>t;while(t--)solve();
// }

//小书童——刷题大军
//https://www.luogu.com.cn/problem/P1926

// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// signed main()
// {
//     int n,m,k,r,num=0,res=0; cin>>n>>m>>k>>r;
//     vector<int>dp(r+1),hk(n+1),t_(m+1),p(m+1);
//     for(int i=1;i<=n;i++) cin>>hk[i];
//     for(int i=1;i<=m;i++) cin>>t_[i];
//     for(int i=1;i<=m;i++) cin>>p[i];
//     for(int i=1;i<=m;i++){
//         for(int j=r;j>=t_[i];j--) dp[j]=max(dp[j],dp[j-t_[i]]+p[i]);
//     }
//     for(int i=1;i<=r;i++){
//         if(dp[i]>=k){
//             num=r-i;
//             break;
//         }
//     }
//     sort(hk.begin(),hk.end());
//     for(int i=1;i<=n;i++){
//         if(num<=0) break;
//         if(num>=hk[i]) num-=hk[i],res++;
//     }
//     cout<<res;
//     return 0;
// }

//最大约数和
//https://www.luogu.com.cn/problem/P1734
// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// signed main()
// {
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//     int s; cin>>s;
//     vector<int>num(s+1),dp(s+1);
//     for(int i=1;i<=s;i++)
//         for(int j=1;j<=i;j++)
//             if(!i%j) num[i]+=j;
//     for(int i=1;i<=s;i++)
//         for(int j=s;j>=i;j--) dp[j]=max(dp[j],dp[j-i]+num[i]);
//     cout<<dp[s]<<endl;
//     return 0;
// }

//【模板】裴蜀定理
//https://www.luogu.com.cn/problem/P4549
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10,mod=1e9+7;
signed main()
{
    std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
    int n,res=1; cin>>n;
    vector<int>a(n+1); cin>>a[1];
    for(int i=2;i<=n;i++) cin>>a[i],res=__gcd(a[i],res);
    cout<<res<<endl;
    return 0;
}

 Day 2(24-3-2)

// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// void solve(){
//     int n,m,k,num=0; cin>>n>>m>>k;
//     string s,now=""; cin>>s;
//     string tmp=s;
//     map<char,int>mp;
//     for(auto c:s) mp[c]++;
//     char e='a'+k-1;
//     for(char x='a';x<e;x++){
//         now+=x;
//         if(mp[x]<n){
//             cout<<"NO"<<endl;
//             for(int i=1;i<=n;i++) cout<<x;
//             return cout<<endl,void();
//         }
//     }
//     while(true){
//         int x=tmp.find(now);
//         if(x==-1){
//             if(num>=n-1) return cout<<"Yes"<<endl,void();
//             for(char x='a';x<e;x++){
//                 string ss="";
//                 for(int i=1;i<=n-1;i++) ss+=x;
//                 for(char c='a';c<e;c++){
//                     if(c==x) continue;
//                     ss+=c;
//                     if(s.find(ss)==-1) return cout<<"NO"<<endl<<ss<<endl,void();
//                     ss.pop_back();
//                 }
//             }
//         }
//         tmp[x]='`',num++;
//     }
// }
// signed main(){
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int t;cin>>t;while(t--)solve();
// }

// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// void solve(){
//     int n,k,m; cin>>n>>k>>m;
//     string s,res=""; cin>>s;
//     int j=0,ok=1;
//     for(int i=1;i<=n;i++){
//         vector<char>vis(30);
//         int cnt=0;
//         while(cnt<k&&j<m){
//             cnt+=!vis[s[j]-'a'];
//             vis[s[j]-'a']=1,j++;
//         }
//         if(cnt<k){
//             ok=0;
//             for(char x='a';x<'a'+k;x++)
//                 if(!vis[x-'a']){
//                     res+=x;
//                     break;
//                 }
//         }
//         else res+=s[j-1];
//     }
//     if(ok) cout<<"Yes"<<endl;
//     else cout<<"No"<<endl<<res<<endl;
// }
// signed main(){
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int t;cin>>t;while(t--)solve();
// }

//https://www.luogu.com.cn/problem/P1853
// #include <bits/stdc++.h>
// using namespace std;
// const int N=1e7+10,mod=1e9+7;
// signed main()
// {
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//     int n,s,d; cin>>s>>n>>d;
//     vector<int>dp(N+1),v(d+1),w(d+1);
//     for(int i=1;i<=d;i++) cin>>v[i]>>w[i],v[i]/=1000;
//     for(int day=1;day<=n;day++){
//         dp.clear();
//         int tmp=0;
//         for(int i=1;i<=d;i++){
//             for(int j=v[i];j<=s/1000;j++)
//                 dp[j]=max(dp[j],dp[j-v[i]]+w[i]),tmp=max(tmp,dp[j]);
//         }
//         s+=tmp;
//     }
//     cout<<s<<endl;
//     return 0;
// }

// //https://www.luogu.com.cn/problem/P1342
// //https://www.luogu.com.cn/problem/P1629
// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// int n,m,e[N],ne[N],h[N],w[N],idx,dist[N],res=0;
// int e1[N],ne1[N],h1[N],w1[N],idx1;
// typedef pair<int,int>pii;
// bool vis[N];
// void add1(int a,int b, int c){
//     e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;
// }
// void add2(int a,int b,int c){
//     e1[idx1]=b,w1[idx1]=c,ne1[idx1]=h1[a],h1[a]=idx1++;
// }
// void dijkstra1(int st){
//     priority_queue<pii,vector<pii>,greater<pii>>que;
//     for(int i=1;i<=n;i++) dist[i]=0x7f7f7f7f,vis[i]=false;
//     dist[st]=0,que.push({dist[st],st});
//     while(!que.empty()){
//         auto now=que.top();que.pop();
//         int y=now.first,x=now.second;
//         if(vis[x]) continue; vis[x]=true;
//         for(int i=h[x];~i;i=ne[i]){
//             int j=e[i];
//             if(dist[j]>y+w[i]){
//                 dist[j]=y+w[i];
//                 que.push({dist[j],j});
//             }
//         }
//     }
// }
// void dijkstra2(int st){
//     priority_queue<pii,vector<pii>,greater<pii>>que;
//     for(int i=1;i<=n;i++) dist[i]=0x7f7f7f7f,vis[i]=false;
//     dist[st]=0,que.push({dist[st],st});
//     while(!que.empty()){
//         auto now=que.top();que.pop();
//         int y=now.first,x=now.second;
//         if(vis[x]) continue; vis[x]=true;
//         for(int i=h1[x];~i;i=ne1[i]){
//             int j=e1[i];
//             if(dist[j]>y+w1[i]){
//                 dist[j]=y+w1[i];
//                 que.push({dist[j],j});
//             }
//         }
//     }
// }
// signed main()
// {
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//     cin>>n>>m;
//     memset(h, -1, sizeof h);
//     memset(h1, -1, sizeof h1);
//     for(int i=1;i<=m;i++){
//         int a,b,c; cin>>a>>b>>c;
//         add1(a,b,c),add2(b,a,c);
//     }
//     dijkstra1(1);
//     for(int i=2;i<=n;i++) res+=dist[i];
//     dijkstra2(1);
//     for(int i=2;i<=n;i++) res+=dist[i];
//     cout<<res<<endl;
//     return 0;
// }

// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10;
// int kpow(int a,int k,int mod){
//     int ans=1;
//     while(k){
//         if(k&1) ans=ans*a%mod;
//         k>>=1,a=a*a%mod;
//     }
//     return ans%mod;
// }
// signed main()
// {
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//     int a,b,q; cin>>a>>b>>q;
//     int res=kpow(a,b,q)%q;
//     cout<<a<<"^"<<b<<" mod "<<q<<"="<<res<<endl;
//     return 0;
// }

//https://www.luogu.com.cn/problem/P1890
// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// int gcdc(int a,int b){
//     return b?gcdc(b,a%b):a;
// }
// int res[1005][1005];
// signed main()
// {
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//     int n,m; cin>>n>>m;
//     vector<int>a(n+1);
//     for(int i=1;i<=n;i++) cin>>a[i];
//     for(int i=1;i<=n;i++){
//         int now=a[i];
//         for(int j=i;j<=n;j++) now=gcdc(now,a[j]),res[i][j]=now;
//     }
//     while(m--){
//         int l,r; cin>>l>>r;
//         cout<<res[l][r]<<endl;
//     }
//     return 0;
// }


//https://www.luogu.com.cn/problem/P1865
// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// bool vis[N];
// signed main()
// {
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//     int n,m,num=0; cin>>n>>m;
//     vector<int>prime(N+1),s(m+1);
//     vis[1]=true;
//     for(int i=2;i<=N;i++){
//         if(!vis[i]) prime[++num]=i;
//         for(int j=1;prime[j]<=N/i;j++){
//             vis[prime[j]*i]=true;
//             if(!(i%prime[j])) break;
//         }
//     }
//     for(int i=1;i<=m;i++){
//         s[i]=s[i-1];
//         if(!vis[i]) s[i]++;
//     }  
//     while(n--){
//         int l,r; cin>>l>>r;
//         if(l<1||r>m) cout<<"Crossing the line"<<endl;
//         else cout<<s[r]-s[l-1]<<endl;
//     }
//     return 0;
// }

// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// int dp[N][21],lg[N];
// signed main()
// {
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
//     int n,m; cin>>n>>m;
//     lg[1]=0;
//     for(int i=2;i<=n;i++) lg[i]=lg[i>>1]+1;
//     for(int i=1;i<=n;i++) cin>>dp[i][0];
//     for(int j=1;j<=lg[n];j++)
//         for(int i=1;i<=n-(1<<j)+1;i++)
//             dp[i][j]=min(dp[i][j-1],dp[i+(1<<(j-1))][j-1]);
//     for(int i=1;i<=n;i++){
//         if(i==1){
//             cout<<0<<endl;
//             continue;
//         }
//         if(i==2){
//             cout<<dp[1][0]<<endl;
//             continue;  
//         }
//         int l=max((int)1,i-m),r=i-1;
//         int pos=lg[r-l+1];
//         cout<<min(dp[l][pos],dp[r-(1<<pos)+1][pos])<<endl;
//     }
//     return 0;
// }

//https://codeforces.com/problemset/problem/1925/B
// #include <bits/stdc++.h>
// #define int long long
// using namespace std;
// const int N=1e6+10,mod=1e9+7;
// void solve(){
//     int n,m,res; cin>>n>>m;
//     set<int>s;
//     for(int i=1;i<=sqrt(n);i++)
//         if(!(n%i)) s.insert(i),s.insert(n/i);
//     for(auto x:s){
//         if(x*m<=n) res=x;
//         else break;
//     }
//     cout<<res<<endl;
// }
// signed main(){
//     std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);int t;cin>>t;while(t--)solve();
// }

 

posted @ 2024-02-29 18:20  o-Sakurajimamai-o  阅读(8)  评论(0编辑  收藏  举报
-- --