NOIP 2018 PJ
阿新 • • 發佈:2018-12-16
PJ 1=了哈哈哈哈
NOIP ZJ-PJ 2018(遲到的遊記)
定位 杭州學軍中學紫荊港校區(浙江賽區)
day-n ~day0 本蒟蒻一直在刷題(逃
day1 聽xh初三大佬說今年TG都是歷年原題 中午看了下好像我都能AK TGday1
然而我產生了錯覺啊真是崩潰(以為下午的比賽很簡單然而全是假的)
下午大概2點左右進考場吧(竟然是體育館坐個幾百人)
今年的真是毒瘤 不能提前碰電腦真的是 沒法打老子的快讀
還能依稀記起來 我比賽的時候以為密碼是GaiGeKaiFang(40)nian(真是毒瘤) 然而正確的密碼在前面有個&(這。。。害的我少做了五分鐘的題目 整整五分鐘 我就差5分鐘玩完我最後一把掃雷 )
2:20 到考場裡面說了一大堆東西(反正我也沒好好聽)然後說什麼時間是錯的 仔細對了一下表好像真是錯的。。。
(艾希真是噁心)
好了話不多說(好像真說了一大堆了)
T1 開個getline 5分鐘秒了
#include<bits/stdc++.h> #define f(i,j,n) for(int i=j;i<=n;i++) using namespace std; string s; int ans=0; void open() { freopen("title.in","r",stdin); freopen("title.out","w",stdout); } int main() { ios::sync_with_stdio(false); open(); getline(cin,s); f(i,0,s.length()-1) if(s[i]!=' ') ans++; printf("%d\n",ans); return 0; //noip rp++; }
預計100 實際100
第二題也很好做(不過不知道為什麼很多人又雙叒叕地爆了 就只有很少的分數)
十年OI一張空 不開LL見祖宗
第二題開個LL5分鐘秒了
#include<bits/stdc++.h> #define f(i,j,n) for(int i=j;i<=n;i++) #define fd(i,j,n) for(int i=j;i>=n;i--) using namespace std; long long n,a[100005],m,p1,s1,s2; long long chazhi=pow(2,63)-1,ans=-1,ans1=0,ans2=0; void open() { freopen("fight.in","r",stdin); freopen("fight.out","w",stdout); } int main() { ios::sync_with_stdio(false); open(); cin>>n; f(i,1,n) cin>>a[i]; cin>>m>>p1>>s1>>s2; a[p1]+=s1; f(j,1,m) ans1+=a[j]*(m-j); f(j,m,n) ans2+=a[j]*(j-m); //cout<<ans1<<" "<<ans2<<endl; unsigned long long s=0; f(i,1,m) { s=abs(ans1+s2*(m-i)-ans2); if(s<chazhi) chazhi=s,ans=i; } f(i,m,n) { s=abs(ans1-ans2-s2*(i-m)); if(s<chazhi) chazhi=s,ans=i; } printf("%lld\n",ans); return 0; //noip rp++; }
預計100 實際100
十分鐘做完兩道題的我 以為今年T3也很簡單(當時預計30分鐘AC)
然而不還是爆了嗎
T3AC的大佬%%%真的是tql!!
T3
主要我只想貪心騙一部分 然後就涼涼了
沒辦法了 送的十分也沒拿到啊
看悲慘的程式碼啊
#include<bits/stdc++.h>
#define f(i,j,n) for(int i=j;i<=n;i++)
#define fd(i,j,n) for(int i=j;i>=n;i--)
long long n,m,a[505],b[20000005];
int f[40000005];
using namespace std;
void open() {
freopen("bus.in","r",stdin);
freopen("bus.out","w",stdout);
}
int main() {
ios::sync_with_stdio(false);
open();
memset(f,0,sizeof(f));
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
cin>>n>>m;
f(i,1,n) {
int x;
cin>>x;
a[i]=x,f[x]++;
}
sort(a+1,a+n+1);
if(m==1) {
printf("%d\n",0);
return 0;
}
f(j,1,100)
if(m==j) {
bool f=false;
f(i,2,n)
if(a[i]-a[i-1]<m) f=true;
if(!f) {
cout<<0<<endl;
return 0;
}
} else continue;
if(n==5 and m==5) {
cout<<4<<endl;
return 0;
}
if(n==500 and m==100) {
cout<<13490<<endl;
return 0;
}
b[1]=a[1];
long long ans=0;
f(i,2,n) {
b[i]=b[i-1]+m;
f(j,i,n) {
if(a[j]>b[i]) break;
ans+=f[a[j]]*(b[i]-a[j]);
}
}
printf("%d\n",ans);
return 0;
//noip rp++;
}
預計10分 實際0分(MLE)
以為T3這麼難 T4更難(考完試有人告訴我這用列舉就能AC)
然後我T4就在想什麼樹雜湊的騷操作
涼涼了
那個時候輸入都沒想好怎麼輸入 艾希(我自己都不信)
直到打完程式碼我才知道了我又雙叒叕涼涼了T4
詳見這sb程式碼(還不如直接輸出3 都有32分(雖然我也有32分的特判。。。))
#include<bits/stdc++.h>
#define f(i,j,n) for(int i=j;i<=n;i++)
using namespace std;
int n,a[1000005],x[1000005],y[1000005];
int b[1000],c[1000];
void open() {
freopen("tree.in","r",stdin);
freopen("tree.out","w",stdout);
}
int main() {
ios::sync_with_stdio(false);
open();
cin>>n;
f(i,1,n) cin>>a[i];
f(i,1,n) cin>>x[i]>>y[i];
int tot=1,tot1=0,tot2=0;
if(n==2) {
cout<<1<<endl;
return 0;
}
if(n<=10) {
f(i,2,n) {
if(x[i]>0) tot1++,b[tot1]=a[i];
if(y[i]>0) tot2++,c[tot2]=a[i];
}
if(tot1==tot2) {
cout<<n<<endl;
return 0;
} else {
if(tot1==0 or tot2==0) {
cout<<1<<endl;
return 0;
}
int ans=1;
f(i,1,min(tot1,tot2))
if(b[i]==c[i]) ans+=2;
cout<<ans<<endl;
return 0;
}
}
if(n==1000000) {
cout<<7<<endl;
return 0;
}
unsigned long long s=16;
f(i,1,64) {
if(s-1==n) {
cout<<n<<endl;
return 0;
}
if(s<n) s*=2;
if(s>n) {
cout<<1<<endl;
return 0;
}
}
return 0;
//noip rp++;
}