noip2011提高组day1+day2解题报告
生活随笔
收集整理的這篇文章主要介紹了
noip2011提高组day1+day2解题报告
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Day1 T1鋪地毯https://www.luogu.org/problem/show?pid=1003
【題目分析】?
? ? 全部讀入以后從最后一個往前找,找到一個矩形的范圍覆蓋了這個點,那這個矩形就是最上面的地毯,輸出即可
#include<iostream> #include<cstdio> #include<cstring> using namespace std; const int maxn=10010; int a[maxn],b[maxn],g[maxn],k[maxn]; int n,ans=-1; int x,y; int main() {freopen("carpet.in","r",stdin);freopen("carpet.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]);scanf("%d%d",&x,&y);int xx=n;while(xx--){if((a[xx+1]<=x)&&(a[xx+1]+g[xx+1]>=x)&&(b[xx+1]<=y)&&(b[xx+1]+k[xx+1]>=y)){ans=xx+1;break;}}printf("%d",ans); }Day1 T2選擇客棧https://www.luogu.org/problem/show?pid=1311
【題目分析】
? ? 首先說一下O(nk)的做法。zzl[i]表示第i種顏色的數(shù)量,bfh[i]表示不符合條件的酒店的數(shù)量,sum表示不符合條件的方案數(shù),ans表示相同色調(diào)的酒店組合的所有情況
#include<cstdio> #include<cstring> #include<iostream> using namespace std; int n,k,p; const int maxn=200010; int a[maxn],b[maxn],zzl[55],bfh[55]; int ans=0,sum=0; int main() {freopen("hotel.in","r",stdin);freopen("hotel.out","w",stdout);scanf("%d%d%d",&n,&k,&p);for(int i=1;i<=n;i++){scanf("%d%d",&a[i],&b[i]);if(b[i]<=p){for(int j=0;j<k;j++){sum+=bfh[j]*(bfh[j]-1)/2;bfh[j]=0;}zzl[a[i]]++;}elsebfh[a[i]]++,zzl[a[i]]++;}for(int i=0;i<k;i++)ans+=zzl[i]*(zzl[i]-1)/2,sum+=bfh[i]*(bfh[i]-1)/2;printf("%d",ans-sum);return 0;} //當復雜度變?yōu)镺(n)...我也不太會,codevs上的題解不錯 #include<iostream> using namespace std; int n,k,p,m,x,y,sum; int a[100],b[100],c[100]; int main() { cin>>n>>k>>p; for(int i=1;i<=n;i++) { cin>>x>>y; if(y<=p) m=i;//如果咖啡店的最低消費地于標準,那么記錄其位置if(m>=a[x]) c[x]=b[x];//如果在當前顏色的酒店之前有出現(xiàn)過同樣顏色的酒店那么記錄當前同種顏色的酒店的出現(xiàn)次數(shù) /*特注:當?shù)紺OODVS上第四組數(shù)據(jù)時也許會因為“y<=p”不會記錄當前的位置, 但是會記錄之前有滿足“y<=p”條件的位置, 也就是說兩個人住的客棧之間有滿足條件的咖啡館, 那么也就可以讓c數(shù)組的對應顏色加上1了,即“c[x]=b[x]” 從而使后面的總數(shù)加上1*/ a[x]=i;//記錄同樣顏色的酒店最后一次的出現(xiàn)位置 sum+=c[x]; /*每一個酒店都可以作為對應點,所以不需要再去加上任何的判斷,記錄住宿的方法, c數(shù)組可以理解為當前色調(diào)位置,到之前滿足“y<=p”色調(diào)位置的方案 */ b[x]++;//記錄出現(xiàn)次數(shù)的總數(shù) } cout<<sum; return 0; }?
轉載于:https://www.cnblogs.com/xiaoningmeng/p/5936384.html
總結
以上是生活随笔為你收集整理的noip2011提高组day1+day2解题报告的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端名词收集
- 下一篇: 简单CSS3代码实现立方体以及3D骰子