2016 ACM/ICPC亚洲区大连站-重现赛 解题报告

HDU 5976 Detachment 【贪心】 (2016ACM/ICPC亚洲区大连站) Detachment Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 570    Accepted Submission(s): 192 Problem Description In a highly 阅读详情

任意门:http://acm.hdu.edu.cn/showproblem.php?pid=5979

按AC顺序:

I - Convex

 Time limit     1000 ms

Memory limit  65536 kB

OS  Windows

We have a special convex that all points have the same distance to origin point. 
As you know we can get N segments after linking the origin point and the points on the convex. We can also get N angles between each pair of the neighbor segments. 
Now give you the data about the angle, please calculate the area of the convex 

InputThere are multiple test cases. 
The first line contains two integer N and D indicating the number of the points and their distance to origin. (3 <= N <= 10, 1 <= D <= 10) 
The next lines contain N integers indicating the angles. The sum of the N numbers is always 360. 
OutputFor each test case output one float numbers indicating the area of the convex. The printed values should have 3 digits after the decimal point. 
Sample Input

4 1
90 90 90 90
6 1
60 60 60 60 60 60

Sample Output

2.000
2.598

题意概括:

给出 N 个点到中心的的距离 R 和 相邻两线的角度 a(角度和一定为360),求这个多边形面积。

解题思路:

签到题

三角形面积公式 S = 1/2 * R * R * sin( a );三角形面积和即多边形面积。

不过注意要把题目给的角度做一下转换再丢进 sin 里 a  = a / pi*180,考虑精度问题,一般 pi 都通过反三角函数 acos( -1 ) 求得;

AC code:

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <algorithm>
 4 #include <cmath>
 5 #include <cstring>
 6 #define LL long long
 7 using namespace std;
 8 const float pi = acos(-1);
 9 
10 int main()
11 {
12     double sum, r;
13     int N;
14     double arr;
15     int s[100];
16     while(~scanf("%d%lf", &N, &r)){
17         sum = 0;
18         for(int i = 0; i < N; i++){
19             scanf("%lf", &arr);
20             //printf("%lf\n", sin(arr*pi/180));
21             sum += (1.00/2.00)*r*r*sin(arr*pi/180);
22         }
23         //sum = pi*r*r;
24         printf("%.3f\n", sum);
25     }
26    return 0;
27 }
I - Convex

 

H - To begin or not to begin

 Time limit   1000 ms

Memory limit  65536 kB

OS   Windows

A box contains black balls and a single red ball. Alice and Bob draw balls from this box without replacement, alternating after each draws until the red ball is drawn. The game is won by the player who happens to draw the single red ball. Bob is a gentleman and offers Alice the choice of whether she wants to start or not. Alice has a hunch that she might be better off if she starts; after all, she might succeed in the first draw. On the other hand, if her first draw yields a black ball, then Bob’s chances to draw the red ball in his first draw are increased, because then one black ball is already removed from the box. How should Alice decide in order to maximize her probability of winning? Help Alice with decision.

InputMultiple test cases (number of test cases≤50), process till end of input. 
For each case, a positive integer k (1≤k≤10^5) is given on a single line. 
OutputFor each case, output: 
1, if the player who starts drawing has an advantage 
2, if the player who starts drawing has a disadvantage 
0, if Alice's and Bob's chances are equal, no matter who starts drawing 
on a single line. 
Sample Input

1
2

Sample Output

0
1

题意概括:

签到题。

两个人从一个有 K 个黑球一个红球的盒子里取球,谁先取到红球谁胜。

每次输入 K ,判断是先取优势大(输出1)还是后取优势大(输出2),还是先取后取优势相同(输出0)。

球取出后不能放入箱子。

解题思路:

首先我们可以判断得是 后取优势大得可能性为 0,即不存在(因为无论如何后取取胜得前提都是前一个没有选中)

一开始大胆地猜测 0 的情况只有 当 K 为 1 一种,其余都是 先取有利(果断无辜WA了一发)还是要老老实实推。

然后我们模拟几次会发现 1 和 0 与 K 的奇偶性有关:

n是奇数时,先取后取的机会一样。输出0。

n为偶数时,先取的可以多取一次,输出1。

AC code:

 1 #include<stdio.h>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstring>
 5 using namespace std ;
 6 int main( )
 7 {
 8     int N_num;
 9     while(scanf("%d",&N_num)!=EOF)
10     {
11     if(N_num%2!=0)
12         puts("0");
13     else
14         puts("1");
15     }
16     return 0;
17 }
H - To begin or not to begin

 

J - Find Small A

As is known to all,the ASCII of character 'a' is 97. Now,find out how many character 'a' in a group of given numbers. Please note that the numbers here are given by 32 bits’ integers in the computer.That means,
1digit represents 4 characters(one character is represented by 8 bits’ binary digits).

InputThe input contains a set of test data.The first number is one positive integer N (1≤N≤100),and then N positive integersai (1≤ aiai≤2^32 - 1) followOutputOutput one line,including an integer representing the number of 'a' in the group of given numbers.

Sample Input

3
97 24929 100

Sample Output

3

题意概括:

签到题。

给 N 个数,每个数可化为32位二进制,问这些数包含多少个 a (ASCII 97)。

解题思路:

签到题。

模拟,一开始考虑了所有八位的情况(高估这道题目了),WA。

其实就是 X>>=8 地遍历一遍每个数就 OK 了。

AC code:

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<bitset>
 5 using namespace std ;
 6 #define D 256
 7 #define Y 97
 8 int FA(int x)
 9 {
10     int now=0;
11     for(int i=0 ; i<4 ; i++)
12     {
13         if(x%D==Y)
14         now++;
15         x>>=8;
16         if(x==0)
17         break;
18     }
19     return now;
20 }
21 int main( )
22 {
23     int n;
24     while(scanf("%d",&n)!=EOF)
25     {
26         int sum=0;
27         for(int i=0 ; i<n ; i++)
28         {
29             int a;
30             scanf("%d",&a);
31             sum+=FA(a);
32         }
33         printf("%d\n",sum);
34 
35     }
36 }
37 /*
38 #include <cstdio>
39 #include <iostream>
40 #include <algorithm>
41 #include <cstring>
42 #define LL long long
43 using namespace std;
44 
45 int main()
46 {
47     int N;
48     while(~scanf("%d", &N)){
49         int ans = 0, t1, t2;
50         for(int i = 0; i < N; i++){
51             scanf("%d", &t1);
52 //            t2 = t1;
53 //            printf("t22:%d\n", t2);
54             while(t1){
55                 if(t1%256 == 97) ans++;
56                 t1>>=8;
57 //                printf("t1: %d\n", t1);
58 //                t2/=256;
59 //                printf("t2: %d\n", t2);
60             }
61         }
62         printf("%d\n", ans);
63     }
64     return 0;
65 }
66 */
J - Find Small A

 

D - A Simple Math Problem

 

Given two positive integers a and b,find suitable X and Y to meet the conditions:
X+Y=a
Least Common Multiple (X, Y) =b

InputInput includes multiple sets of test data.Each test data occupies one line,including two positive integers a(1≤a≤2*10^4),b(1≤b≤10^9),and their meanings are shown in the description.Contains most of the 12W test cases.OutputFor each set of input data,output a line of two integers,representing X, Y.If you cannot find such X and Y,output one line of "No Solution"(without quotation).

Sample Input

6 8
798 10780

Sample Output

No Solution
308 490

题意概括:

“一道简单的数学问题”

给出 a b两个正整数,求解 X Y;

X Y满足:

①X+Y = a

②X Y 的最小公倍数等于 b

解题思路:

我们知道如果满足X Y 的最小公倍数等于 b

那么 X*Y = GCD(X,Y)* b;

即 X*(a-X) = GCD( X, a-X) * b;

开始的做法,暴力 X (X范围到 a),果断TL;

不过通过这个暴力发现蜜汁规律:

如果X Y是满足条件的 那么 GCD(X, Y) = GCD(a, b);

最后建东哥徒手解方程,O(1)解决这道简单的数学题。

AC code:

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<cmath>
 5 
 6 using namespace std;
 7 typedef long long LL;
 8 LL gcd(LL a,LL b)
 9 {
10     if(b==0) return a;
11     else return gcd(b,a%b);
12 }
13 
14 int main()
15 {
16     LL a,b;
17 
18     while(~scanf("%lld%lld",&a,&b))
19     {
20         LL t=gcd(a,b);
21 
22         LL x=(a-sqrt(a*a-4*t*b))/2;
23         LL y=a-x;
24 //        printf("x=%lld,y=%lld\n",x,y);
25         if(x*y==gcd(x,y)*b)
26         printf("%lld %lld\n",x,a-x);
27         else printf("No Solution\n");
28     }
29 }
D - A Simple Math Problem

 

A - Wrestling Match

Nowadays, at least one wrestling match is held every year in our country. There are a lot of people in the game is "good player”, the rest is "bad player”. Now, Xiao Ming is referee of the wrestling match and he has a list of the matches in his hand. At the same time, he knows some people are good players,some are bad players. He believes that every game is a battle between the good and the bad player. Now he wants to know whether all the people can be divided into "good player" and "bad player".

InputInput contains multiple sets of data.For each set of data,there are four numbers in the first line:N (1 ≤ N≤ 1000)、M(1 ≤M ≤ 10000)、X,Y(X+Y≤N ),in order to show the number of players(numbered 1toN ),the number of matches,the number of known "good players" and the number of known "bad players".In the next M lines,Each line has two numbersa, b(a≠b) ,said there is a game between a and b .The next line has X different numbers.Each number is known as a "good player" number.The last line contains Y different numbers.Each number represents a known "bad player" number.Data guarantees there will not be a player number is a good player and also a bad player.OutputIf all the people can be divided into "good players" and "bad players”, output "YES", otherwise output "NO".

Sample Input

5 4 0 0
1 3
1 4
3 5
4 5
5 4 1 0
1 3
1 4
3 5
4 5
2

Sample Output

NO
YES

题意概括:

有 N 个人 M 个对立关系 , 已知 X 个人是好人(无重复), Y 个人是坏人(无重复),题目问是否能区分所有人的好坏。

解题思路:

各种奇思妙想,最后得出结论 DFS 或者 BFS 解决

对题目给出得对立关系建图,通过从一个结点(优先从有标记为好或者坏的)开始DFS或者BFS,记录奇偶性判断当前结点是好是坏。

如果有矛盾输出NO 否则YES。

AC code:

  1 #include<stdio.h>
  2 #include<string.h>
  3 #include<algorithm>
  4 using namespace std;
  5 
  6 typedef struct Edge {
  7     int to, next;
  8 }Edge;
  9 
 10 const int maxn = 1010;
 11 int n, m, x, y;
 12 int know[maxn], vis[maxn], VAL[maxn];
 13 int cnt, head[maxn];
 14 Edge e[maxn*maxn];
 15 
 16 void init() {
 17     cnt = 0;
 18     memset(head, -1, sizeof(head));
 19     memset(know, 0, sizeof(know));
 20     memset(vis, 0, sizeof(vis));
 21     memset(VAL, 0, sizeof(VAL));
 22 }
 23 
 24 void adde(int u, int v) {
 25     e[cnt].to = v, e[cnt].next = head[u]; head[u] = cnt++;
 26 
 27 }
 28 int FA(int x)
 29 {
 30     return 3-x;
 31 }
 32 bool dfs(int u) {
 33     for(int i = head[u]; ~i; i=e[i].next) {
 34         int v = e[i].to;
 35         if(VAL[v] == VAL[u]) return 0;
 36         if(vis[v]) continue;
 37         vis[v] = 1;
 38         VAL[v] = FA(VAL[u]);
 39         if(!dfs(v)) return 0;
 40     }
 41     return 1;
 42 }
 43 
 44 int main() {
 45     // freopen("in", "r", stdin);
 46     int u, v;
 47     while(~scanf("%d%d%d%d",&n,&m,&x,&y)) {
 48         init();
 49         for(int i = 0; i < m; i++) {
 50             scanf("%d%d",&u,&v);
 51             adde(u, v); adde(v, u);
 52             know[u] = know[v] = 1;
 53         }
 54         for(int i = 0; i < x; i++) {
 55             scanf("%d", &u);
 56             VAL[u] = 1; know[u] = 1;
 57         }
 58         for(int i = 0; i < y; i++) {
 59             scanf("%d", &u);
 60             VAL[u] = 2; know[u] = 1;
 61         }
 62         bool flag = 0;
 63         for(int i = 1; i <= n; i++) {
 64             if(!know[i]) {
 65                 flag = 1;
 66                 break;
 67             }
 68         }
 69         if(flag) {
 70             puts("NO");
 71             continue;
 72         }
 73         for(int i = 1; i <= n; i++) {
 74             if(VAL[i]) {
 75                 vis[i] = 1;
 76                 if(!dfs(i)) {
 77                     flag = 1;
 78                     break;
 79                 }
 80             }
 81         }
 82         for(int i = 1; i <= n; i++) {
 83             if(!VAL[i]) {
 84                 vis[i] = 1;
 85                 VAL[i] = 2;
 86                 if(!dfs(i)) {
 87                     flag = 1;
 88                     break;
 89                 }
 90             }
 91         }
 92           for(int i = 1; i <= n; i++) {
 93             if(!VAL[i]) {
 94                 vis[i] = 1;
 95                 VAL[i] = 1;
 96                 if(!dfs(i)) {
 97                     flag = 1;
 98                     break;
 99                 }
100             }
101         }
102         if(!flag) puts("YES");
103         else puts("NO");
104     }
105     return 0;
106 }
A - Wrestling Match

几组数据:

  1 6 5 3 3
  2 1 2
  3 2 3
  4 3 4
  5 4 5
  6 5 6
  7 1 3 5
  8 2 4 6
  9 
 10 YES
 11 
 12 5 0 4 0
 13 1 2 3 4
 14 
 15 NO
 16 
 17 5 0 5 0
 18 1 2 3 4 5
 19 
 20 YES
 21 
 22 6 0 4 0
 23 1 2 3 4
 24 
 25 NO
 26 
 27 5 6 3 2
 28 1 4
 29 4 3
 30 4 5
 31 3 2
 32 5 2
 33 2 4
 34 1 3 5
 35 4 2
 36 
 37 NO
 38 
 39 1 0 0 0
 40 
 41 NO
 42 
 43 1 0 1 0
 44 1
 45 
 46 YES
 47 
 48 1 0 0 1
 49 1
 50 
 51 YES
 52 
 53 5 1 2 2
 54 1 2
 55 1 2
 56 3 4
 57 
 58 NO
 59 
 60 5 1 2 2
 61 3 4
 62 1 2
 63 3 4
 64 
 65 NO
 66 
 67 5 1 5 0
 68 1 2
 69 1 2 3 4 5
 70 
 71 NO
 72 
 73 4 3 4 0
 74 1 2
 75 1 4
 76 3 4
 77 1 2 3 4
 78 
 79 NO
 80 
 81 6 4 3 3
 82 1 3
 83 3 5
 84 2 4
 85 4 6
 86 1 3 5
 87 2 4 6
 88 
 89 NO
 90 
 91 !!!
 92 6 4 3 3  
 93 1 3
 94 3 5
 95 2 4
 96 4 6
 97 1 2 5
 98 2 4 6
 99 
100 NO
101 
102 6 4 3 3
103 1 4
104 2 3
105 4 5
106 2 6
107 1 2 5
108 3 4 6
109 
110 YES
text

 

F - Detachment

 

In a highly developed alien society, the habitats are almost infinite dimensional space. 
In the history of this planet,there is an old puzzle. 
You have a line segment with x units’ length representing one dimension.The line segment can be split into a number of small line segments:  a1,a2a1,a2, … (x= a1+a2a1+a2+…) assigned to different dimensions. And then, the multidimensional space has been established. Now there are two requirements for this space: 
1.Two different small line segments cannot be equal ( ai≠ajai≠aj when i≠j). 
2.Make this multidimensional space size s as large as possible (s= a1∗a2a1∗a2*...).Note that it allows to keep one dimension.That's to say, the number of ai can be only one. 
Now can you solve this question and find the maximum size of the space?(For the final number is too large,your answer will be modulo 10^9+7) 

InputThe first line is an integer T,meaning the number of test cases. 
Then T lines follow. Each line contains one integer x. 
1≤T≤10^6, 1≤x≤10^9OutputMaximum s you can get modulo 10^9+7. Note that we wants to be greatest product before modulo 10^9+7.

Sample Input

1
4

Sample Output

4

 

题意概括:

给一个数 N ,可以把它分解成若干个不相同的数  N = a1+a2+a3+...... ,求最大的 S = a1*a2*a3*.......

分多少个随意,也可以不分。

解题思路:

一开始以为是规律题,

后来推了无果,笔纸模拟到 11 发现一个神奇的贪心

要是乘积最大化,那可分的数越多越好。

而每一个数可分的数字数量是有规律的。

x1 = 1, s1 = 1;

x2 = 2, s2 = 2;

x3 = 3, s3 = 3;

x4 = 4, s4 = 4;

 

x5 = 2+3, s5 = 2*3;

x6 = 2+4 [2+(3+1)], s6 = 2*4;

x7 = 3+4 [(2+1) + (3+1)], s7 = 3*4;

x8 = 3+5 [(2+1) + (3+1+1)], s8 = 3*5;

 

x9 = 2+3+4, s9 = 2*3*4;

x10 = 2+3+5 [2+3+(4+1)], s10 = 2*3*5;

x11 = 2+4+5 [2+(3+1)+(4+1)], s11 = 2*4*5;

...

如何构造贪心显而易见了,参考一篇大牛的证明:

https://blog.youkuaiyun.com/qq_34374664/article/details/53466435

此题关键在于得出如何能使乘积s最大

按照以往经验,必然是取一段连续自然数能够使得乘积最大,而这段连续自然数可从2开始(为啥不从1开始?从1开始还不如将这个1给这段连续自然数的最后一个数),

于是我们可以得到形如2+3+4+...+k(k=2,3,...)的式子,而x是10^9内的任意整数,我们不可能恰好能够凑成连续自然数之和,可能会多出△x

而这个△x的值,我可以保证它的范围为0≤△x≤k,相信大于等于0还是好理解的,为什么会小于等于k呢?因为当它大于k时,原式不是可以增加一项?即2+3+4+...+k+(k+1)

那么多出来的△x怎么处理呢?显然是从后往前均摊给连续自然数中的(k-1)个数,为啥从后往前?因为若我们从前往后,总是会使连续自然数重复,不好处理

于是,在我们分配完△x之后,我们大致会得到下述两种式子:

①2*3*...*(i-1)*(i+1)*...*k*(k+1)

②3*4*...*i*(i+1)*...*k*(k+2)

显然,我们要计算此结果,可以借助阶乘,而阶乘中缺失的项,我们除掉就可以了,那么便会涉及除法取模,显然需要用到乘法逆元

做法讲解完毕,以下是为什么连续段乘积最大的大概证明:

 

 

 

简而言之,假如有一个数让你拆成两个要求积最大,肯定是拆成两个一样的,如果拆成n个,肯定就是拆成这个数/n,如果没说几个,肯定都拆成几个3就拆成几个三,剩下的拆成2.这个题要求不能一样的,所以肯定就是2,3,4这样排列了,从2开始让它变小,这样数量会最多,每次加一就是让他越来越接近。所以用前缀和记录,如果有剩余的话,肯定是从后往前逐个+1,而且剩余的那个数最多=2,3,4...最大的那个数,举个例子会发现有两种情况:1.比如2*3*4*5余下5,相等。最优就是3*4*5*7,就是每个数都加一遍,然后会剩下一个1,加给最后一个,总的来说就是 除以2,乘上t+2,(t是最后一个数的值);2.不相等,2,3,4,5,余2,最优就是2,3,5,6,就是用3的阶乘*6的阶乘除以4的阶乘,因为数量太多,不能一个一个乘,就用前缀积相除,数字太大,就要用逆元了。。然后用二分优化下。。

这题找到贪心策略后,要知道数据量大的话要用前缀积+逆元求,用前缀和优化找余数。。二分也是优化这个的

AC code:

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <algorithm>
 4 #include <cstring>
 5 #define LL long long
 6 using namespace std;
 7 const int MAXN = 1e5+5;
 8 const int Mod = 1e9+7;
 9 
10 LL mul[MAXN], sum[MAXN];
11 void init()
12 {
13     mul[1] = 1;
14     sum[1] = 0;
15     for(int i = 2; i < MAXN; i++){
16         sum[i] = sum[i-1] + i;          //前缀和
17         mul[i] = (i*mul[i-1])%Mod;      //前缀积
18     }
19 }
20 
21 LL inv(LL a, int b)                     //费马小定理求逆元
22 {
23     LL ans = 1;
24     while(b){
25         if(b&1) ans = (ans*a)%Mod;
26         a = (a*a)%Mod;
27         b >>= 1;
28     }
29     return ans;
30 }
31 
32 int main()
33 {
34     int t, x;
35     init();
36     scanf("%d", &t);
37     while(t--){
38         scanf("%d", &x);
39         if(x == 1){
40             puts("1");
41             continue;
42         }
43         int l = 2, r = MAXN, mid, p;
44         while(l <= r){
45             mid = (l+r)/2;
46             if(sum[mid] <= x) p = mid, l = mid+1;
47             else r = mid-1;
48         }
49 //        printf("%d\n", p);
50         int num = x - sum[p];
51         LL ans = 0;
52         if(num == p)
53             ans = (mul[p]*inv(2, Mod-2)%Mod*(p+2))%Mod;
54         else
55             ans = (mul[p+1]*inv(mul[p+1-num], Mod-2)%Mod*mul[p-num])%Mod;
56         printf("%lld\n", ans);
57     }
58     return 0;
59 }
F - Detachment

 

总结:还是太年轻,任重而道远。

二、声明式 Pipeline 语法 选择型参数,一般用于给定几个可选的值,然后选择其中一个进行赋值,例如:parameters { choice(name: ‘CHOICES’, choices: [‘one’, ‘two’, ‘three’], description: ‘’) },表示定义一个名为 CHOICES 的变量,可选的值为 one、two、three;默认情况下,如果定义了某个 stage 的 agent,在进入该 stage 的 agent 后,该 stage 的 when条件才会被评估,但是可以通过一些选项更改此选项。 阅读详情

相关推荐

从配置字到实际运动:手把手教你用EtherCAT调试伺服电机的控制模式(以倍福TwinCAT3为例)

本文详细介绍了如何使用EtherCAT调试伺服电机的控制模式,以倍福TwinCAT3为例。从环境搭建、模式配置到状态机切换,提供了完整的操作指南和典型故障排查方法,帮助工程师快速解决‘配置字写入了但电机不转’等常见问题,提升工业自动化现场的调试效率。

weixin_42783709的博客 421

2017 ACM-ICPC 亚洲区-banana

Discussion Bananas are the favoured food of monkeys.  In the forest, there is a Banana Company that provides bananas from different places.  The company has two lists.  The first list records

_ 148万+

深入解析Vortex GPGPU cache设计(2),关于cache_bank

本文分析了Vortex处理器的cache_bank模块设计,作为cache系列的第二部分。文章详细阐述了cache_bank的基本结构,包括地址位分配和默认配置参数。重点解析了cache的5种操作及其优先级。文章详细介绍了二级流水线设计,包括TAG/DATARAM的读写操作时序。

weixin_55313207的博客 1170

浏览网页出现乱码

     大家可能遇到这种情况,浏览一个网页会出现乱码,也就是除了图片以外会出现乱码。出现乱码的原因。 .      浏览器不支持网页的编码。这种情况比较常见。比如IE6的浏览器于遨游浏览同一网页,会出现显示不完整、乱码。当然同一浏览器的不同版本也有类似情况。IE6与IE8浏览器有些网页也会出现乱码、显示不全。       先分享一个我看过的网页内容。   

tiantian6036的专栏 67万+

SRAM故障排查实战:如何用Nano Prober定位6T存储单元的异常点

本文详细介绍了在SRAM故障排查中,如何运用Nano Prober(纳米探针)技术精准定位6T存储单元的内部异常。面对传统方法难以发现的电性参数漂移(如晶体管阈值电压偏移)或微小物理缺陷,Nano Prober能直接对单个6T单元内的晶体管进行I-V特性测量,结合失效模式分析,有效解决读写错误等疑难问题,是芯片失效分析的关键工具。

v5w6x的博客 668

ISO15118-20证书结构关系解读(7.3.2.1)

本文主要讲述ISO15118-20:2022标准所有证书结构的关联关系,目的是为后续基于ISO15118-20车桩通讯及PNC充电等提供基础支撑。 本文所有的证书关系图全部来源于ISO15118-20:2022标准规范,在后续的讲解过程会将图的摘取出处给提供出来,便于后期文章和标准对应起来解读。

weixin_40900932的博客 3185

老板口中的一区二区是什么意思?

一区和二区一般指中科院的期刊分区级别。SCI英文全称为:Science Citation Index,中文翻译为:科学引用索引。SCI的目标是提供高质量的学术资源,帮助研究人员了解最新的科学研究动态,并促进学术交流与合作。1区,2区,3区,4区是SCI期刊的分区,SCI期刊的分区有两种,一种是JCR的分区,另一个是中科院的分区,这两类分区很类似,都是分为4个区,分区的标准也都是期刊的影响因子。

振华OPPO的博客世界 940万+

eMMC数据擦除的方式

接下来主要是讲解erase、trim、discard的差异,涉及的command有CMD35、CMD36、CMD38。一般用来擦除整卡或者某些分区,如果只想擦除一个。以下是device status的部分解释。eMMC的数据擦除方式有6种,分别是。将会跳过写保护,只执行其他的范围。Discard的命令序列是。Erase的命令序列是。的范围有包含写保护,Trim的命令序列是。

DPJimmy的博客 1774

Algorand: Scaling Byzantine Agreements for Cryptocurrencies

摘要 Algorand是一种新的加密机制,可以在一小段时间内确认交易延迟,同时扩展到许多用户。 Algorand确保用户从未对已确认的交易有不同意见,即使一些用户是恶意的,网络被临时分区。相比之下,现有的加密货币允许临时分叉,因此需要很长时间,大约一个小时,以高信任确认交易。  Algorand使用新的拜占庭协议(BA)协议在下一组交易中达成用户的共识。为了将共识扩大到许多用户,Algoran

桑安琪的成长之路 1万+

APP签名验证全栈破解:Frida Hook绕过+算法逆向+Python一键调用(附可运行脚本)

做过APP逆向和爬虫的同学,肯定都被签名验证折磨过:改了一行代码重新打包,APP直接闪退;抓包看到接口有个sign参数,翻遍JS找不到加密逻辑;好不容易找到加密函数,一调用就崩溃。客户端APK签名校验服务端接口签名验证。前者防止你篡改APP,后者防止你伪造请求。很多人卡在第一步,改完APK就闪退,根本没机会碰接口。本文基于真实项目实战,分享一套通用的签名验证破解方案。从客户端APK签名校验的Frida Hook绕过,到服务端sign算法的逆向还原,最后用Python实现一键调用。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 965

OCR文字识别基础

ocr文字识别

m0_47405013的博客 1755

亚洲分为6个区

亚洲分区

hgz2020的博客 30万+

Universal Robot——在Gazebo中模拟UR5机器人

今天的目标是在Gazebo安装我们的ur5机器人。Gazebo是一个流行的模拟工具,它不仅可以让你像在Rviz中一样可视化你的机器人,而且还内置了一个物理引擎。这样你就可以在更真实的环境中测试你的机器人应用程序。我们将查看我们需要的属性 添加对我们的机器人——我们的order的描述,以模拟它以及如何在Gazebo中生成我们的机器人。

如果想成为中心,那么就到中心去吧。 1970

2016ACM/ICPC亚洲区大连站现场赛题解报告

2016ACM/ICPC亚洲区大连站现场赛题解报告

queuelovestack的专栏 6430

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

2016ACM/ICPC亚洲区沈阳站现场赛题解报告

2016ACM/ICPC亚洲区沈阳站现场赛题解报告

queuelovestack的专栏 4477

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【HDU 5971 Wrestling Match】+ 2016ACM/ICPC亚洲区大连站-重现赛(感谢大连海事大学) + 二分图染色

Wrestling Match Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 363 Accepted Submission(s): 170Problem Description Nowadays, at least one

楚江枫 1320

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

2016 ACM/ICPC亚洲区大连站-重现赛题解

The 2016 ACM-ICPC Asia Dalian Regional Contest [Cloned] 【A - Wrestling Match】 【题目大意】 有一个球队,队员有好坏之分,给你总人数n,m个对立关系,x个已知的好队员和y个已知的坏队员,问你能否将所有人分为两组,一组好一组坏 【解题思路】 二分图染色裸题 【AC代码】 #include <bits/stdc++.h&...

weixin_44211980的博客 483

HDU 5979 Convex【计算几何】 (2016ACM/ICPC亚洲区大连站)

Convex Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 294    Accepted Submission(s): 220 Problem Description We have a special

Coolxxx的博客 908

【HDU 5980 Find Small A】+ 2016ACM/ICPC亚洲区大连站-重现赛(感谢大连海事大学)

Find Small A Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 324 Accepted Submission(s): 162Problem Description As is known to all,the ASC

楚江枫 857

2016ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)

目录A Thickest BurgerB Relative atomic massC Recursive sequence · 矩阵快速幂E Counting Cliques · 暴力H Guessing the Dice Roll 题目链接 2016ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学) A Thickest Burger #include <bits/stdc++.h> using namespace std; int A, B; void solve() { c

Yubing792289314的博客 585

2016ACM/ICPC亚洲区大连站-重现赛 E

读题真的费了点时间,但是读懂后就发现并不是那么困难。 这道题很简单明了。。题干里说的什么集合看起来很高端。。但是你仔细拆解一下就会发现。。这个就是树状数组。。 问题就是 n m ,代表 n 个元素,m个询问。每次询问有两种 1.询问区间 a b 之间 lowbit( i ) 之和 2.询问 把 x 加入树状数组需要循环几次 add。。。 总之。。询问 2 是最好搞的。。不会超时。。暴力求...

qq_40924940的博客 190

2016ACM/ICPC亚洲区大连站现场赛题解报告(转)

http://blog.youkuaiyun.com/queuelovestack/article/details/53055418 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原本过的人数比较多的题结果重现过的变少了,而原本现场赛全场过的人最少的题重现做出的人反而多了一堆,不过还是不影响最水的6题,然而残酷的现实是6题才有机会拿铜...(╥╯^╰╥)...

weixin_30245867的博客 928

2016ACM/ICPC亚洲区大连站-重现赛 d

首先这道题需要理解一个概念 就是 若 i,j 互质 ,则 i+j 和 i*j 互质 证明如下:(感谢队友的思路) 如果 i j 互质, i+j 和 i*j 不互质,那么  i+j 和 i*j 存在公因数 T ,那么由题意可知 ,T必定为 i 或 j 的因数,同时 T 还为 i + j 的因数,那么假设 i % t == 0, ( i + j ) % t == 0, j 必定为 t 的一个倍数...

qq_40924940的博客 336

2016ACM/ICPC亚洲区大连站-重现赛 B

题目如下 给你一个长度为 n 的字串,之后 n 行每行输入 a 然后输入 a 个 ai 代表 字串的第 i 位可以为 a0-----aa。 最后输入主串,问主串中包含了多少个可行的字串,输出字串。   字符串判断题。。开始想用 kmp 但是发现 没有重复性的话就会超时。。 所以这道题用了一个 bitset 来优化一种 shift_and 算法。。   首先我们了解一下 bitset ...

qq_40924940的博客 276
上一篇: Codeforces Round #515 (Div. 3) B. Heaters【 贪心 区间合并细节 】
下一篇: 2016 ACM/ICPC亚洲区大连站 F - Detachment 【维护前缀积、前缀和、二分搜索优化】...
莜莫oO
博客等级 码龄9年 7粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值