-----------今天是被打爆的一天,t3就是用正解做的,但是好像zz了,只得了30分。-----------------
---------------- t1由於沒判不合法的情況,也只有15分---------------------
---------------------果然是乙個拿不到noip一等獎的人----------------------------
----------------------------畢竟noip都準備改名了?-------------------------
a:破碎的矩陣。
題意:給出n,m,表示有n*m的矩陣,然後給定每一行的異或和,每一列的異或和,求方案數。
思路:如果合法,方案數是pow(2,(n-1)*(m-1)),這個很好想,因為你確定了乙個n*m的左上方(n-1)*(m-1)的矩陣後,最後一行一列可以反推,是唯一的。 不合法的情況是,異或和不為0;
#include#define ll long longview code#define rep(i,a,b) for(int i=a;i<=b;i++)
using
namespace
std;
const
int maxn=2000010
;int
ans,n,m,mod; ll x,a[maxn],b[maxn];
int qpow(int
base,int
num)
return
res;
}void solve(int
t)int
main()
}return0;
}
b:點與面。
題意:求w的個數。
思路:裸題,三次bit即可。
#include#define ll long longview code#define rep(i,a,b) for(int i=a;i<=b;i++)
using
namespace
std;
const
int maxn=500010
;const
int mod=998244353
;int
a[maxn],b[maxn],tot;
ll l[maxn],r[maxn],ans,sum[maxn],res[maxn];
ll query(
int x) return
res;}
void add(int x,ll y) }
intmain()
c:資訊傳遞
li個人,和右邊的前ri個人。
注意:由於他們是乙個環形,第1個人的左邊乙個人是第n個人,第n個人的右邊乙個人是第1個人。
venn為了防止自己掉分的**被大家知道,他想知道對於每乙個人,如果訊息從他這裡傳播,需要多久整個班級就會知道。
思路:一眼就可以想到做法,由於ans會比較大,所以倍增。 dp[i][j]表示從i出發,經過1但是我只得了30分。 是因為有個wa點。 就是可能訊息不是單方向傳遞的,所以左右轉移要同時進行。 比如1先向右傳遞到2號學生,2號學生的li非常的小,那麼訊息就傳到很左邊了。
#include#define pii pair#define f first#define s second
#define rep(i,a,b) for(int i=a;i<=b;i++)
using
namespace
std;
const
int maxn=300010
;const
int inf=1e9;
int l[maxn],r[maxn],a[maxn][18],b[maxn][18],mn[maxn<<2][18],mx[maxn<<2][18
];void build(int now,int l,int r,int
p)
int mid=(l+r)>>1
; build(now
<<1
,l,mid,p);
build(now
<<1|1,mid+1
,r,p);
mx[now][p]=max(mx[now<<1][p],mx[now<<1|1
][p]);
mn[now][p]=min(mn[now<<1][p],mn[now<<1|1
][p]);
}pii query(
int now,int l,int r,int l,int r,intp);
int mid=(l+r)>>1
; pii res,tmp;
res.f=-inf,res.s=inf;
if(l<=mid)
if(r>mid)
return
res;
}int
main()
rep(i,
1,m) a[i][0]=max(1,i-l[i]);
rep(i,
1,m) b[i][0]=min(m,i+r[i]);
build(
1,1,m,0
); rep(j,
1,17
) build(
1,1,m,j);
}rep(i,
1,n)
printf(
"%d
",res+1
); }
return0;
}
牛客NOIP暑期七天營 提高組2
trie樹上的節點多記乙個rest值表示還有多少個串沒被用。列舉所有串,每次先在trie上跑匹配串,看一看那個點的rest。如果沒法匹配的話就往trie裡插入原串,把結束節點的rest 1 思路和trie類似。其實就是把trie換成hash。把在樹上跑換成去hash值 將每個序列的個數存下,每次讀入...
暑期七天魔鬼訓練營
第一天 1 luogu 2871 poj3624 charm bracelet 手鍊 01揹包 狀態壓縮 2 poj 1384 piggy bank 完全揹包 3 poj 2387 the cows come home 最短路徑模板 4 poj 3255 次短路 5 poj 3723 conscri...
牛客網NOIP賽前集訓營 提高組(第七場) 小結
終於 牛客的noip賽前集訓營有我會做的題目啦!之前考的 題天天爆零 真的不是省選集訓營?真 純模擬,毫無坑點 以至於我一開始以為題目看錯了,看了好幾遍 include using namespace std int n,m,k,km,a 205 205 x,y,t,egy 0 205 205 si...