广州集训 Day1-2(Homework)

//后悔在广州玩的太嗨了 现在要疯狂补blog...

// 含code

Day1

 

https://www.luogu.org/problem/show?pid=2201 

 

https://www.luogu.org/problem/show?pid=2789 

 

https://www.luogu.org/problem/show?pid=1213 

solution:

  模拟。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 int p[9],c[9];
 6 bool check(){
 7     if((p[1]+p[3]+p[5]+p[7]+p[9])%4==c[5]&&(p[5]+p[7]+p[8]+p[9])%4==c[8]&&(p[6]+p[8]+p[9])%4==c[9])
 8         return true;
 9     return false;
10 }
11 int main(){
12     for(int i=1;i<=9;i++) {
13     cin>>c[i];
14     c[i]=(12-c[i])/3;
15     }
16     for(p[1]=0;p[1]<4;p[1]++)
17         for(p[2]=0;p[2]<4;p[2]++)
18             for(p[3]=0;p[3]<4;p[3]++){
19                 p[4]=c[1]-p[1]-p[2];
20                 p[5]=c[2]-p[1]-p[2]-p[3];
21                 p[6]=c[3]-p[2]-p[3];
22                 p[7]=c[4]-p[1]-p[4]-p[5];
23                 p[8]=c[7]-p[4]-p[7];
24                 p[9]=c[6]-p[3]-p[5]-p[6];
25                 for(int i=3;i<=9;i++) p[i]=(p[i]+16)%4;
26                 if(check()){
27                     bool pass=0;
28                     for(int i=1;i<=9;i++) 
29                         while(p[i]!=0){
30                             if(pass) cout<<" ";
31                             cout<<i;
32                             p[i]--;
33                             pass=1;
34                         }    
35                     return 0;
36                 }
37             }
38     return 0;
39 }
1213

https://www.luogu.org/problem/show?pid=2759 

solution:

  二分。

 1 #include<cmath>
 2 #include<cstdio>
 3 #define ll long long
 4 #ifdef WIN32
 5 #define LL "%I64d"
 6 #else
 7 #define LL "%lld"
 8 #endif
 9 using namespace std;
10 ll l=1,r=2000000000,mid;
11 ll n,len;
12 int main(){
13     scanf("%d",&n);
14     while(l<r) {
15         mid=(l+r)>>1;
16         len=(mid*log(mid))/log(10)+1;
17         if(len<n) l=mid+1;
18         else r=mid;
19     }
20     printf(LL,l);
21     return 0;
22 }
2759

https://www.luogu.org/problem/show?pid=2343 

 

https://www.luogu.org/problem/show?pid=3718 

solution:

  二分。(最小的最大,最大的最小)

 1 #include<cstdio>
 2 #include<stdio.h> 
 3 #include<iostream>
 4 using namespace std;
 5 string x;
 6 char ch[5]={'N','F'};
 7 int n,k;
 8 int cnt=0;
 9 int ll=0,rr=0,cnt_mid=0,con=0;
10 void over(){
11     printf("1\n");
12     return ;
13 }
14 int main(){
15     scanf("%d%d",&n,&k);cin>>x;
16     for(int i=0;i<n;i++) if(x[i]==ch[i%2]) cnt++;
17     if(cnt<=k||n-cnt<=k) {over();return 0;}
18     int l=2,r=n/k+1;
19     int mid=(l+r)>>1;
20     while(l<=r){
21         mid=(l+r)>>1;cnt_mid=0;
22         for(rr=0,ll=0,con=0;rr<n;rr++){
23             if(x[ll]==x[rr]) con++;
24             else ll=rr,con=1;
25             if(mid<con) ll=rr+1,con=0,cnt_mid++;
26         }
27         if(cnt_mid<=k) r=mid-1;
28         else l=mid+1;
29     }
30     printf("%d",l);
31     return 0;
32 }
3718

https://www.luogu.org/problem/show?pid=1717 

solution:

  贪心+优先队列。

  感觉枚举也可以过,数据很小...

 1 #include<cstdio>
 2 #include<queue>
 3 #define Max(a,b) (a>b?a:b)
 4 #define MAXN 30
 5 using namespace std;
 6 int n,h,cx=0;
 7 int ans=0;
 8 int d[MAXN],t[MAXN];
 9 struct data{
10     int f,num;
11     bool operator <(data x)const{return f<x.f;}
12 }a[MAXN];
13 priority_queue<data>q;
14 int main(){
15     scanf("%d%d",&n,&h);h*=12;
16     for(int i=1;i<=n;i++) {scanf("%d",&a[i].f);a[i].num=i;}
17     for(int i=1;i<=n;i++) scanf("%d",&d[i]);
18     for(int i=1;i<n;i++) scanf("%d",&t[i]);
19     for(int i=1;i<=n;i++){
20         h-=t[i-1];cx=0;
21         while(!q.empty()) q.pop();
22         for(int j=1;j<=i;j++) q.push(a[j]);
23         for(int j=1;j<=h;j++) {
24             data x;x=q.top();
25             if(x.f>0) cx+=x.f;
26             x.f-=d[x.num];
27             q.pop();q.push(x);
28         }
29         ans=Max(ans,cx); 
30     }
31     printf("%d",ans);
32     return 0;
33 }
1717

 

Day 2

https://www.luogu.org/problem/show?pid=2672 

 

https://www.luogu.org/problem/show?pid=1631 

 

https://www.luogu.org/problem/show?pid=1886 

 

https://www.luogu.org/problem/show?pid=2024 

 

https://www.luogu.org/problem/show?pid=2574 

 

https://www.luogu.org/problem/show?pid=2073 

 

https://www.luogu.org/problem/show?pid=1558 

 

//相信日后会补上的

Day1 模拟+各种奇怪算法

Day2 数据结构

posted @ 2017-10-08 22:00  drizzly  阅读(189)  评论(0编辑  收藏  举报