- 博客(10)
- 收藏
- 关注
原创 新的开始
一直想(bei)写(lao)博(shi)客(cui),可总因种(lan)种(ai)原(wan)因(qi)未能成文 今天这篇,就算做开始吧……
2017-10-23 18:44:35 409 13
原创 NOIP模拟(20171026)T3 大逃杀
一棵带权树,第一次经过一个节点需ti时间,获得wi的武力值 求T时间内获得的最大武力值 n,T≤300n,T\leq 300 树形dp神题(告诉了我什么叫转移顺序) dp[i][j][0/1/2]dp[i][j][0/1/2]表示路径的 【起点终点都在i/起点(或终点)在i,另一点在i的子树内(因为路径是可逆的)/起点终点都在i的子树】 内能得到的最大武力值 转移即可(说的容易!!!)
2017-10-26 19:12:40 266 1
原创 NOIP模拟(20171026)T2 做运动
最小生成树+最短路裸题? 二分+最短路裸题? 还是归为卡常题吧 别看了,没卡过去#include<bits/stdc++.h> #define LEN 2000000 #define INF 1000000000000000000 using namespace std; inline int getint(){ int x=0,p=1; char c=getchar();
2017-10-26 19:02:21 318 1
原创 NOIP模拟(20171026)T1 抄代码
题意——我不知道,我不知道,我不知道 反正判判就行了 怎么判?不知道不知道不知道……#include<bits/stdc++.h> using namespace std; inline int getint(){ int x=0,p=1; char c=getchar(); while(!isdigit(c)){ if(c=='-')p=-1;
2017-10-26 15:55:43 239 1
原创 NOIP模拟(20171024)T3 数学
求满足方程ax≡xa(mod2n)a^x\equiv x^a\pmod{2^n} 的解的个数 n≤30,a≤109n\leq 30,a\leq 10^9 询问组数T≤1000T\leq1000 引理一:若a,b均为奇数,且a2k+1≡b2k+1(mod2n)a^{2k+1}\equiv b^{2k+1}\pmod{2^n},则a≡b(mod2n)a\equiv b\pmod{2^n} 证明
2017-10-25 07:43:55 221 3
原创 NOIP模拟(20171024)T2 乘积
求从1-n中选k个数,使得这k个数的乘积不含完全平方因子 70% n≤30\ \ \ n\leq30 100% n≤500\ \ \ n\leq50070%:状压dp,f[i][j][k]表示前i个数,选了j个,当前所选数之积分解质因数后的状态为k(k表示成二进制后,第一位表示有没有2,第二位表示有没有3……以此类推)令i+1分解质因数后状态为pos[i+1] f[i][j][
2017-10-24 19:57:47 275 1
原创 NOIP模拟(20171024)T1 Graph
poj3177弱化版 双连通分量缩点,答案为(叶子节点+1)/2 (还不带重边,实在没什么好说的了)#include<bits/stdc++.h> #define LEN 1000006 using namespace std; inline int getint(){ int x=0,p=1; char c=getchar(); while(!isdigit(c)){
2017-10-24 19:08:49 240 1
原创 NOIP模拟(20171023)T3 拆网线
求用最小数量的边使得树上至少k个点被这些边覆盖 2≤k≤n≤1052\leq k\leq n\leq 10^5 显然,一条边覆盖两个点最好。 考虑最多能有多少边能覆盖两个点,用树形dp即可 复杂度O(n)O(n)#include<bits/stdc++.h> #define LEN using namespace std; inline int getint(){ int x=0,p
2017-10-23 20:51:14 350 3
原创 NOIP模拟(20171023)T2 一样远
求树上离给定两点a,b一样远的点的个数 点数n≤105n\leq10^5,询问数m≤105m\leq10^5 首先,如果a=b,那么n个点都是答案 如果a≠\neqb,将从a到b的链提出来,易得链中点及其子树到a、b距离均相等 显然,我们不能暴力跳树高找中点,考虑倍增 注意当lca是链中点时lca的祖先节点及祖先节点的其他子树上的点也是答案 复杂度O(nlog2n+mlog2n)O(nl
2017-10-23 20:05:00 347 2
原创 NOIP模拟(20171023)T1 fibonacci
求一个数是否为两个fibonacci数的乘积 数据组数T≤100\leq100,n≤1000,000,000\leq1000,000,000 好吧小于等于1e9的fibonacci数只有45个,暴力即可#include<bits/stdc++.h> using namespace std; inline long long getint(){ int x=0,p=1; char
2017-10-23 19:35:06 279 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人