摘要: /* 输入一堆数,如果是两个数并且个数相同就输出yes和这两个数 否则输出no */ #include using namespace std; const int maxn = 1010; int num[maxn] = {0}; int a[maxn] = {0}; const int inf =0x3f3f3f3f; int main() { int n; int sum... 阅读全文
posted @ 2017-09-26 20:26 Kearon 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 using namespace std; 3 vector v[510]; 4 int match[510]; 5 int check[510]; 6 int n, k; 7 int dfs(int x) 8 { 9 for(int i = 0; i < v[x].size(); i++) 10 { 11 int ... 阅读全文
posted @ 2017-08-14 10:24 Kearon 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 配置编译环境: 进sublime,然后点击Tools->Build System->New build System 直接用下面的替换 保存文件,文件名任意 每次使用前,我们按Ctrl+shift+B来选择编译选项 配置一键编译&运行快捷键 点击Preferences->Key Buildings 阅读全文
posted @ 2017-08-13 21:23 Kearon 阅读(1317) 评论(0) 推荐(1) 编辑
摘要: 板子题 SBT: Treap: Splay 阅读全文
posted @ 2017-08-10 11:38 Kearon 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 n个商店,每个商店的数值是ai,能提升的能力值为ai的二进制形式的结尾0的个数 3 购买序列的ai必须升序,问顺序访问商店最大提升能力值为多少 4 动态规划,定义dp[n]为以购买第n个商店的升级为结尾的购买方案的提升最大值 5 所以dp[0]=0; 6 dp[i]=max(dp[i],dp[j]+k[i]); 7 */ 8 #include 9 using n... 阅读全文
posted @ 2017-07-20 22:59 Kearon 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 屋顶有n个洞,用k块板子覆盖所有洞,问最长的一块板子至少是多长。 3 二分长度,贪心的方式尝试覆盖,把每一块板子都放在刚好能覆盖最左边的洞的最右位置 4 从而判断某个长度的k块板子能否覆盖所有洞。 5 */ 6 #include 7 using namespace std; 8 int d[100010]; 9 int main() 10 { 11 ... 阅读全文
posted @ 2017-07-20 22:58 Kearon 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 从顶部发射石头,按照碰壁反弹的运动路线问能不能击中底部的某个位置。 3 计算落点,飞行轨迹周期为2*(w-1),所以直接将高度视为h=h%(2*w-2),然后如果高度 4 不大于w 则落点即为高度,否则落点在2*w-h的位置。 5 */ 6 #include 7 using namespace std; 8 int main() 9 { 10 int n... 阅读全文
posted @ 2017-07-20 22:57 Kearon 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 n个学校,第i个有 个参赛者,一个队伍k个人,每个队伍所有人必须来自同一学校, 3 求k使得队伍数量m最少。 4 因为k必须整除每个学校的参赛者数量 5 直接用gcd 6 */ 7 #include 8 using namespace std; 9 int gcd(int a,int b) 10 { 11 return b ? gcd(b,a%b) :... 阅读全文
posted @ 2017-07-20 22:56 Kearon 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 1 //模拟题 2 #include 3 using namespace std; 4 int main() 5 { 6 int n; 7 scanf("%d",&n); 8 while(n--) 9 { 10 char a[1010],b[10]; 11 scanf("%s%s",a,b); 12 ... 阅读全文
posted @ 2017-07-20 22:55 Kearon 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 a or c = b,已知a和b,求c可能有多少种值。 3 对比二进制每一位,如果A为1,B为0,则不可能,如果A为1,B为1,则C的这一位可以 4 是0也可以是1,所以结果乘以2,其他情况C的这一位必须和B一致,所以结果不变。 5 */ 6 #include 7 using namespace std; 8 const int mod=1000000007; ... 阅读全文
posted @ 2017-07-20 22:54 Kearon 阅读(256) 评论(0) 推荐(0) 编辑