当前位置: 首页 > 编程日记 > 正文

Wannafly挑战赛14

A.直角三棱锥

枚举推式子

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long LL;
 4 LL gcd(LL a, LL b){
 5     return a % b ? gcd(b, a % b) : b;
 6 }
 7 int main(){
 8     int T;
 9     scanf("%d", &T);
10     while(T--) {
11         LL K, M, six = 6;
12         cin >> K >> M;
13         LL a = K + 1, b = K + 2, c = K + 3;
14         LL g = gcd(a, six);
15         a /= g, six /= g;
16         g = gcd(b, six);
17         b /= g, six /= g;
18         g = gcd(c, six);
19         c /= g, six /= g;
20         LL ans = a * b % M * c % M;
21         cout << ans << endl;
22     }
23     return 0;
24 }
Aguin

B.前缀查询

子树修改子树询问转路径标记

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 1e6 + 10;
 4 typedef long long LL;
 5  
 6 int node;
 7 LL val[maxn], num[maxn], del[maxn];
 8 LL sum[maxn], tot[maxn];
 9 map<char, int> G[maxn];
10 void insert(string s, LL v){
11     int p = 0;
12     for(int i = 0; i < s.length(); ++i){
13         if(G[p].find(s[i]) == G[p].end()) G[p][s[i]] = ++node;
14         p = G[p][s[i]];
15         v -= del[p];
16         sum[p] += v;
17         tot[p]++;
18     }
19     val[p] += v;
20     num[p]++;
21 }
22 void modify(string s, LL v) {
23     int p = 0;
24     for (int i = 0; i < s.length(); ++i) {
25         if (G[p].find(s[i]) == G[p].end()) G[p][s[i]] = ++node;
26         p = G[p][s[i]];
27     }
28     del[p] += v;
29     LL tmp = tot[p];
30     p = 0;
31     for (int i = 0; i < s.length(); ++i) {
32         if (G[p].find(s[i]) == G[p].end()) G[p][s[i]] = ++node;
33         p = G[p][s[i]];
34         if(i != s.length() - 1) sum[p] += tmp * v;
35     }
36 }
37 LL Q1(string s) {
38     int p = 0;
39     LL tmp = 0;
40     for (int i = 0; i < s.length(); ++i) {
41         if (G[p].find(s[i]) == G[p].end()) G[p][s[i]] = ++node;
42         p = G[p][s[i]];
43         tmp += del[p];
44     }
45     return val[p] + tmp * num[p];
46 }
47 LL Q2(string s) {
48     int p = 0;
49     LL tmp = 0;
50     for (int i = 0; i < s.length(); ++i) {
51         if (G[p].find(s[i]) == G[p].end()) G[p][s[i]] = ++node;
52         p = G[p][s[i]];
53         tmp += del[p];
54     }
55     return sum[p] + tmp * tot[p];
56 }
57  
58 char s[maxn];
59 int main(){
60     int N;
61     scanf("%d", &N);
62     for(int i = 1; i <= N; ++i){
63         int o, a, b;
64         scanf("%d", &o);
65         if(o == 1){
66             scanf("%s %d", s, &a);
67             insert(string(s), a);
68         }
69         else if(o == 2){
70             scanf("%s %d", s, &a);
71             modify(string(s), a);
72         }
73         else if(o == 3){
74             scanf("%s", s);
75             printf("%lld\n", Q1(string(s)));
76         }
77         else{
78             scanf("%s", s);
79             printf("%lld\n", Q2(string(s)));
80         }
81     }
82     return 0;
83 }
Aguin

C.可达性

缩点

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 1e5 + 10;
 4 
 5 // BCC
 6 set<int> SE[maxn], ans;
 7 set<int> :: iterator it;
 8 stack<int> S;
 9 vector<int> G[maxn];
10 int dfs_clock, dfn[maxn], low[maxn];
11 int bcc_cnt, bccno[maxn];
12 void dfs(int u, int fa)
13 {
14     dfn[u] = low[u] = ++dfs_clock;
15     S.push(u);
16     for(int i = 0; i < G[u].size(); ++i)
17     {
18         int v = G[u][i];
19         if(!dfn[v])
20         {
21             dfs(v, u);
22             low[u] = min(low[u], low[v]);
23         }
24         else if(!bccno[v]) low[u] = min(low[u], dfn[v]);
25     }
26 
27     if(low[u] == dfn[u])
28     {
29         bcc_cnt++;
30         while(1)
31         {
32             int x = S.top(); S.pop();
33             bccno[x] = bcc_cnt;
34             SE[bcc_cnt].insert(x);
35             if(x == u) break;
36         }
37     }
38 }
39 
40 void find_bcc(int n)
41 {
42     memset(dfn, 0, sizeof(dfn));
43     memset(bccno, 0, sizeof(bccno));
44     dfs_clock = bcc_cnt = 0;
45     for(int i = 1; i <= n; i++) if(!dfn[i]) dfs(i, 0);
46 }
47 
48 int deg[maxn];
49 int main(){
50     int n, m;
51     scanf("%d %d", &n, &m);
52     for(int i = 1; i <= m; ++i){
53         int u, v;
54         scanf("%d %d", &u, &v);
55         G[u].push_back(v);
56     }
57     find_bcc(n);
58     for(int i = 1; i <= n; ++i){
59         for(int j = 0; j < G[i].size(); ++j)
60             if(bccno[i] != bccno[G[i][j]]) deg[bccno[G[i][j]]]++;
61     }
62     for(int i = 1; i <= bcc_cnt; ++i){
63         if(deg[i] == 0) ans.insert(*SE[i].begin());
64     }
65     printf("%d\n", ans.size());
66     for(it = ans.begin(); it != ans.end(); it++){
67         if(it != ans.begin()) putchar(' ');
68         printf("%d", *it);
69     }
70     puts("");
71     return 0;
72 }
Aguin

D.codeJan和树

启发式合并

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 1e5 + 10;
 4 typedef long long LL;
 5 typedef pair<int, int> pii;
 6 vector<pii> G[maxn];
 7 int n, m;
 8 
 9 int sz[maxn];
10 LL bt[maxn];
11 void dfs(int x, int f){
12     bt[x] = 0;
13     sz[x] = 1;
14     for(int i = 0; i < G[x].size(); ++i){
15         int to = G[x][i].first, d = G[x][i].second;
16         if(to == f) continue;
17         dfs(to, x);
18         bt[x] += bt[to] + d * sz[to];
19         sz[x] += sz[to];
20     }
21 }
22 
23 LL ans;
24 int id[maxn];
25 map<LL, int> S[maxn];
26 map<LL, int> :: iterator it;
27 void add(int x, int f, int y){
28     S[y][bt[x]] = 1;
29     for(int i = 0; i < G[x].size(); ++i){
30         int to = G[x][i].first;
31         if(to == f) continue;
32         add(to, x, y);
33     }
34 }
35 void dfs1(int x, int f){
36     id[x] = x;
37     int M = 0, ms = 0;
38     for(int i = 0; i < G[x].size(); ++i){
39         int to = G[x][i].first;
40         if(to == f) continue;
41         dfs1(to, x);
42         if(sz[to] > M) M = sz[to], ms = to;
43     }
44     if(ms) id[x] = id[ms];
45     for(int i = 0; i < G[x].size(); ++i){
46         int to = G[x][i].first;
47         if(to == f || to == ms) continue;
48         add(to, x, id[x]);
49     }
50     it = S[id[x]].lower_bound(bt[x] - m);
51     if(it != S[id[x]].end()) ans = max(ans, bt[x] - (*it).first);
52     S[id[x]][bt[x]] = 1;
53 }
54 
55 int main(){
56     int T;
57     scanf("%d", &T);
58     while(T--){
59         scanf("%d %d", &n, &m);
60         for(int i = 1; i <= n; ++i) G[i].clear(), S[i].clear();
61         for(int i = 1; i < n; ++i){
62             int u, v, d;
63             scanf("%d %d %d", &u, &v, &d);
64             G[u].push_back(pii(v, d));
65             G[v].push_back(pii(u, d));
66         }
67         ans = -1;
68         dfs(1, 0);
69         dfs1(1, 0);
70         printf("%lld\n", ans);
71     }
72     return 0;
73 }
Aguin

E.无效位置

倒着并茶几

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int maxn = 1e5 + 10;
 4 int a[maxn], b[maxn], ans[maxn];
 5 int base[maxn][33], vis[maxn];
 6 
 7 int fa[maxn];
 8 int Find(int x){
 9     return fa[x] == x ? x : fa[x] = Find(fa[x]);
10 }
11 void Union(int x, int y){
12     x = Find(x), y = Find(y);
13     if(x == y) return;
14     for(int i = 29; i >= 0; i--){
15         if(!base[x][i]) continue;
16         for(int j = 29; j >= 0; j--){
17             if((1 << j) & base[x][i]){
18                 if(base[y][j]) base[x][i] ^= base[y][j];
19                 else {
20                     base[y][j] = base[x][i];
21                     break;
22                 }
23             }
24         }
25     }
26     fa[x] = y;
27 }
28 
29 int main(){
30     int N, M = 0;
31     scanf("%d", &N);
32     for(int i = 1; i <= N; ++i) fa[i] = i;
33     for(int i = 1; i <= N; ++i) scanf("%d", a + i);
34     for(int i = 1; i <= N; ++i) scanf("%d", b + i);
35     for(int i = N; i >= 1; --i){
36         int x = a[b[i]], y = 0;
37         for(int j = 29; j >= 0; --j){
38             if((1 << j) & x){
39                 base[b[i]][j] = x;
40                 break;
41             }
42         }
43         vis[b[i]] = 1;
44         if(vis[b[i] - 1]) Union(b[i] - 1, b[i]);
45         if(vis[b[i] + 1]) Union(b[i] + 1, b[i]);
46         x = Find(b[i]);
47         for(int j = 29; j >= 0; --j){
48             if((1 << j) & y) continue;
49             y ^= base[x][j];
50         }
51         M = max(M, y);
52         ans[i] = M;
53     }
54     for(int i = 1; i <= N; ++i) printf("%d\n", ans[i]);
55     return 0;
56 }
Aguin

F.细胞

转载于:https://www.cnblogs.com/Aguin/p/8893861.html

相关文章:

第八章 泛型程序设计

1.带有【超类型限定 super】的通配符可以向泛型对象写入&#xff0c;带有【子类型限定 extends】的通配符可以从泛型对象读取&#xff0c;反之则不然。转载于:https://www.cnblogs.com/baokang/p/7441122.html

【java】过滤器filter的使用

一、创建filter的实现类 代码实现 &#xff1a; package com.zzxtit.common.filter;import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax…

简单统计分数的程序

//设计一个程序&#xff0c;统计某个班级某门考试成绩中的最高分、最低分和平均分。 //当输入分数为-1时&#xff0c;输入结束 #include<iostream> using namespace std; int main() { int value,total,max,min,noOfInput; total0; //总分 max0; min100; noOfInput0; //人…

SugarCRM ListView查询中加入默认条件

在$_REQUEST[where] $where;$storeQuery->process_views($currentModule);上面加入以下代码,下面的代码指默认为查询本月if($where){ $date_period thismonth; $date_from get_date_from($date_period); $date_to get_date_to($date_period); if(isset($date_from) &…

Vue2.0使用vue-cli脚手架搭建

一&#xff1a;安装node.js Node.js官网&#xff1a;https://nodejs.org/en/download/ 选择相应的版本即可安装 通过node自带的npm包管理工具 二、安装依赖 安装依赖&#xff1a;npm install 如果国外安装比较慢&#xff0c;可采用国内淘宝镜像安装&#xff1a;npm install -g …

【javaweb】eclipse重启后tomcat打不开解决方法

https://blog.csdn.net/enniexiaorui/article/details/70161040

编写高性能的 JavaScript 程序的几个提示

2019独角兽企业重金招聘Python工程师标准>>> 这是一篇来自国外的文章&#xff0c;从各个方面介绍如何编写一个高性能的 JavaScript 应用程序。例如应该在页面最底部加载JS文件、合并多个js文件、异步加载js文件等等。 全文阅读&#xff08;英文&#xff09; 转载于:…

[网络流24题] 最长k可重区间集

对于区间 u->v &#xff0c;连接边 u->v&#xff0c;权值为-len&#xff0c;容量为1&#xff0c;之后对每个点 i->i1&#xff0c;连边 i->i1&#xff0c;容量为k&#xff0c;权值为0&#xff0c;求区间最左端点到最右端点的费用流&#xff0c;费用相反数即为答案。…

Gym - 102082G

Gym - 102082Ghttps://vjudge.net/problem/2198225/origin对于数列中任意一个数&#xff0c;要么从最左边到它不递减&#xff0c;要么从最右边到到它不递减&#xff0c;为了满足这个条件&#xff0c;就要移动&#xff0c;而移动的最少步数就是逆序对数。所以这个数要么往左移动…

JAVA环境变量配置与配置后CMD的使用

JAVA环境变量配置&#xff1a; 直接在环境变量Path(或PATH&#xff0c;大小写无所谓)里加上 &#xff1a;JDK安装路径名/bin 也可以先设JAVA_HOME然后再设JAVA_HOME/bin&#xff0c;但必须是在同一区域中进行设置&#xff0c;系统变量区域或用户变量区域&#xff0c;否则设置的…

【web】从数据库读取多条数据到前台

servlet 代码实现 &#xff1a; package com.zzxtit.order;import java.io.IOException; import java.sql.SQLException; import java.util.List;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet…

FUSE——用户空间文件系统

用户空间文件系统&#xff08;Filesystem in Userspace&#xff0c;简称FUSE&#xff09;是操作系统中的概念&#xff0c;指完全在用户态实现的文件系统。目前Linux通过内核模块对此进行支持。一些文件系统如ZFS&#xff0c;glusterfs和luster使用FUSE实现。       Linux…

29个简单直观的移动设备网页设计

毫无疑问的是移动网络已经风靡世界。运行在iOS或Android智能手机&#xff0c;这两者提供了出色的网页浏览平台。而且这个数字仅仅是预期增加人口的平均工资增长率扩大。 然而该过程的设计和编码移动模板可以是非常乏味。我希望提供一个创造性的思路在这个画廊29个直观的手机设计…

【java】maven工程使用switch时不能使用String解决方法

原因 &#xff1a; 1.7之前不支持使用String 解决方法 &#xff1a; 1、右击程序------》 Build Path ------》Config Build Path 2、选择图示选项 3、更改选项&#xff0c;如图 4、更改编译器 5、将版本改为1.8 6、应用

Oracle 存储过程 无法编译 解决方法(转载)

声明:本文为转载,如果有侵犯知识版本&#xff0c;请通知本人&#xff0c;本人将即刻停止侵权行为: http://blog.csdn.net/tianlesoftware/article/details/7412555 Oracle存储过程无法编译&#xff0c;在PL/SQL中编译&#xff0c;总是挂住了&#xff0c;这个原因可能是要编译的…

交流一点CCNP学习经验

首先反问自己&#xff0c;学习NP的最现实目的是什么。 如果是在校大学生&#xff0c;中专&#xff0c;职高的学生。大多目的是通过一个认证&#xff0c;学习更多有用的知识和技能。招个好工作。有个好的开始。这样应该是把扎实的基础理论和熟练的基础实验操作放在第一位。不要死…

iOS测试基础(命令篇)-iPhone型号及其他信息

首先安装libimobiledevice和ideviceinstaller brew uninstall ideviceinstaller brew uninstall libimobiledevice brew install --HEAD libimobiledevice brew link --overwrite libimobiledevice brew install ideviceinstaller brew link --overwrite ideviceinstaller 应用…

Soft-to-Hard Vector Quantization for End-to-End Learning Compressible Representations

郑重声明&#xff1a;原文参见标题&#xff0c;如有侵权&#xff0c;请联系作者&#xff0c;将会撤销发布&#xff01; Abstract: 我们提出了一种新的方法&#xff0c;通过端到端的训练策略来学习深度架构中的可压缩表征。我们的方法是基于量化和熵的软&#xff08;连续&#x…

Delta3D———通过游戏管理器组件和消息的扩展创建自定义行为 《转》

游戏管理器组件给我们提供了在不修改游戏管理器的情况下灵活扩展我们的自定义行为的能力。游戏管理器组件是基于消息来工作的&#xff0c;定义自定义行为的基本 流程就是创建自定义类型的消息&#xff0c;在合适的时候发送消息&#xff0c;创建自定义游戏管理组件并重写自己的消…

【spring】在不联网的情况下查看xml的定义规则的方法

1、打开依赖 2、打开该jar包 3、打开该包 4、找到xml的规则

常用的js判断

常用的js判断 关于注册的时候&#xff1b;对注册信息的判断&#xff1a; 表单 <form id"form" name"form" method"post" action"" οnsubmit"return CheckPost();"> 引入&#xff1a;<script language"JavaS…

解决Chrome中UEditor插入图片的选择框加载过慢问题

解决Chrome中UEditor插入图片的选择框加载过慢问题 ../resources/plugins/ueditor/ueditor.all.js 中line24489/24498中的 accept"image/*" 修改为 accept"image/jpeg,image/jpg,image/png,image/gif,image/bmp"../resources/plugins/ueditor/dialogs/im…

转:[大数据竞赛]夺冠感言:走进业务,提升对世界的认知能力

http://bbs.aliyun.com/read/153103.html?spm5176.7189909.0.0.KWGWap 一、同为推荐&#xff0c;大不同&#xff01;不知道同学们是否经常在天猫购物&#xff0c;但是相信大家一定听过音乐&#xff0c;看过电影&#xff0c;读过新闻和小说。大家在享受各种娱乐信息的时候&…

【转】C/C++中的日期和时间

头文件 time.h 函数用途 函数名 得到处理器时间 clock 得到时间差 difftime 设置时间 mktime 得到时间 time 得到以ASCII码表示的时间 asctime 得到字符串表示的时间 ctime 得到指定格式的时间 strftime 摘要&#xff1a; 本文从介绍基础概念入手&#xff0c;探讨了在C/C中对日…

【spring】di(依赖注入)使用实例

1、xml文件里的配置 <!-- 问题 &#xff1a; 两个bean的顺序可不可以调换&#xff1f; 答 &#xff1a; 可以--><bean id"userDao" class"springboottest.ioc.UserDao"> </bean><bean id"UserService" class"springb…

设置php-fpm使用socket文件

1、在配置文件/usr/local/php/etc/php-fpm.conf文件中找到 <value name "listen_address">127.0.0.1:9000</value> 改为<value name"listen_address"> /var/run/phpfpm.sock</value> 重启php-fpm /usr/local/php/sbin/php-fpm r…

BZOJ1251: 序列终结者

【传送门&#xff1a;BZOJ1251】 简要题意&#xff1a; 给出一个长度为n的序列&#xff0c;有m个操作&#xff0c;3种操作&#xff1a; 1 l r k将l到r的数增加k 2 l r将l到r的数列翻转 3 l r求出l到r的最大值 题解&#xff1a; 裸SPLAY&#xff0c;直接下放两种标记&#xff0c…

Linux笔记 软件管理

一、软件包分类1.软件包分类&#xff1a;源码包、二进制包源码包&#xff1a;源代码1&#xff09;优点&#xff1a;开源&#xff0c;有能力可修改源代码可以自由选择所需的功能软件是编译安装&#xff0c;更适合Linux系统&#xff0c;更稳定效率更高卸载方便。2&#xff09;缺点…

如何有效编写软件的75条建议

1. 你们的项目组使用源代码管理工具了么&#xff1f; 应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。2. 你们的项目组使用缺陷管理系统了么&#xff1f; 应该用。ClearQuest太复杂&#xff0c;我的推荐是BugZilla。 3. 你们的测试组还在用…

【spring】使用spring的环境配置及从官网获得配置文件所用代码的方法

环境配置 1、添加jar包 spring-beans-4.1.3.RELEASE.jarspring-context-4.1.3.RELEASE.jarspring-core-4.1.3.RELEASE.jarspring-expression-4.1.3.RELEASE.jar 2、配置文件 &#xff08;1&#xff09;在下创建一个config文件夹 &#xff08;2&#xff09;在文件夹下创建一…