3749: [POI2015]Łasuchy
2018-02-07 08:22
232 查看
题目链接
题目大意:n个数,第i个人可以选i或(i+1) mod n,若两人选同一个数则平分,假如某个人改变自己的选择后(其他n-1个人的选择不变),可以使自己获得比原先更大的数字,那么这个人会不满意,钦点每个人的选择方案,使得所有人满意
题解:对每个数字有四种情况
枚举第一个数字的状态向后递推
注意是环,1的前驱是n
方程见Claris 题解
我的收获:暴力dp!
题目大意:n个数,第i个人可以选i或(i+1) mod n,若两人选同一个数则平分,假如某个人改变自己的选择后(其他n-1个人的选择不变),可以使自己获得比原先更大的数字,那么这个人会不满意,钦点每个人的选择方案,使得所有人满意
题解:对每个数字有四种情况
枚举第一个数字的状态向后递推
注意是环,1的前驱是n
方程见Claris 题解
我的收获:暴力dp!
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N=1000005; int n; int a ; int path [5],ans ; bool work(int x) { memset(path,0,sizeof path); path[1][x]=1; for(int i=2;i<=n;i++) { if(path[i-1][1]&&(a[i-1]<=(a[i]<<1))) path[i][1]=1; if(path[i-1][4]&&(a[i-1]<=a[i])) path[i][1]=4; if(path[i-1][2]&&(a[i-1]<<1)>=a[i]) path[i][2]=2; if(path[i-1][3]&&(a[i-1]>=a[i])) path[i][2]=3; if(path[i-1][1]&&(a[i-1]<=a[i])) path[i][3]=1; if(path[i-1][4]&&(a[i-1]<<1)<=a[i]) path[i][3]=4; if(path[i-1][2]&&(a[i-1]>=a[i])) path[i][4]=2; if(path[i-1][3]&&(a[i-1]>=a[i]*2)) path[i][4]=3; } if(!path [x]) return false; for(int i=n;i>=1;i--) { switch(x) { case 1:ans[i-1]=(i-1)%(n-1)+1;break; case 2:ans[i]=(i-1)%(n-1)+1;break; case 3:ans[i-1]=ans[i]=(i-1)%(n-1)+1;break; } x=path[i][x]; } for(int i=1;i<=n-1;i++) printf("%d%c",ans[i],(i<n-1)?' ':'\n'); return true; } void work() { for(int i=1;i<=4;i++) if(work(i)) return ; puts("NIE"); } void init() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); a[++n]=a[1]; } int main() { init(); work(); return 0; }
相关文章推荐
- BZOJ3749 : [POI2015]Łasuchy
- 3749: [POI2015]Łasuchy
- BZOJ 3749 [POI2015]Łasuchy
- BZOJ 3749: [POI2015]Łasuchy【动态规划】
- bzoj 3749: [POI2015]Łasuchy
- [POI2015]Łasuchy
- BZOJ3749: [POI2015]Łasuchy
- BZOJ3749[POI2015] Łasuchy
- BZOJ 3747 POI 2015 Kinoman 线段树
- BZOJ4378: [POI2015]Logistyka
- 【POI2015】【BZOJ4378】Logistyka
- 【BZOJ4385】[POI2015]Wilcze doły 单调栈+双指针法
- 【bzoj 3747】[POI2015]Kinoman(线段树)
- BZOJ_3747_[POI2015]Kinoman_线段树
- BZOJ4386[POI2015] Wycieczki
- BZOJ3747[POI2015]Kin
- [POI2015]Pieczęć
- bzoj4378 [POI2015]Logistyka
- BZOJ 4385: [POI2015]Wilcze doły
- BZOJ 4378: [POI2015]Logistyka 树状数组