Android:设置included view的文本

在一个布局文件中有一个included view:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
       <include 
        layout="@layout/includedView" />
    </LinearLayout>

这个 included view 包含:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="48dip" >
    <ImageView
    ...
    />
       <TextView
    ....
    />
  </RelativeLayout>

我的问题是:能设置 includedView 中textview的text吗,这个includedView 是来自包含view的布局中。是来自layout 1 吗?

2个回答

当然可以了,试试不就知道了吗

同样的利用findViewById然后赋值

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
included Layout 的 rootview 出现 NullPointerException
当我访问 included Layout 中的 RelativeLayout viewgroup 时获得一个 NullPointerexception 异常。在下面的代码中名称是 rootlayout。 date_layout.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_layoutroot_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#eeeeee" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <TextView android:id="@+id/date_from1_id" style="@style/date_text" android:layout_alignParentTop="true" android:text="@string/date_from1" /> <TextView android:id="@+id/date_from2_id" style="@style/date_text" android:layout_alignBaseline="@+id/date_from1_id" android:layout_alignBottom="@+id/date_from1_id" android:layout_alignParentRight="true" android:text="@string/date_To1" /> <TextView </RelativeLayout> main_layout.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <include layout="@layout/date_layout" android:id="@+id/datelayout_id"></include>" <FrameLayout android:id="@+id/frame_id" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout> </LinearLayout> 我的代码是: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_layout); View view = findViewById(R.id.datelayout_id); rootlayout = (RelativeLayout)view.findViewById(R.id.my_layoutroot_id); rootlayout.setOnclickListener(this); 哪里出错呢?
访问 included Layout 中 rootview 的 NullPointerException
当我访问included layout中的一个RelativeLayout viewgroup时,获取了 NullPointerexception异常。在代码中它定义为rootlayout,为什么会出错? date_layout.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_layoutroot_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#eeeeee" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <TextView android:id="@+id/date_from1_id" style="@style/date_text" android:layout_alignParentTop="true" android:text="@string/date_from1" /> <TextView android:id="@+id/date_from2_id" style="@style/date_text" android:layout_alignBaseline="@+id/date_from1_id" android:layout_alignBottom="@+id/date_from1_id" android:layout_alignParentRight="true" android:text="@string/date_To1" /> <TextView </RelativeLayout> main_layout.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <include layout="@layout/date_layout" android:id="@+id/datelayout_id"></include>" <FrameLayout android:id="@+id/frame_id" android:layout_width="match_parent" android:layout_height="match_parent" > </FrameLayout> </LinearLayout> 我的代码是: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_layout); View view = findViewById(R.id.datelayout_id); rootlayout = (RelativeLayout)view.findViewById(R.id.my_layoutroot_id); rootlayout.setOnclickListener(this);
Symbolic Logic Mechanization 逻辑的算法
Problem Description Marvin, the robot with a brain the size of a planet, followed some . . . markedly less successful robots as the product line developed. One such was Monroe, the robot — except, to help him recognize his name, he was referred to as Moe. He is sufficiently mentally challenged that he needs external assistance to handle symbolic logic. Polish notation is the prefix symbolic logic notation developed by Jan Lukasiewicz (1929). [Hence postfix expressions are referred to as being in Reverse Polish Notation — RPN.] The notation developed by Lukasiewicz (referred to as PN below) uses upper-case letters for the logic operators and lower-case letters for logic variables (which can only be true or false). Since prefix notation is self-grouping, there is no need for precedence, associativity, or parentheses, unlike infix notation. In the following table the PN operator is shown, followed by its operation. Operators not having exactly equivalent C/C++/Java operators are shown in the truth table (using 1 for true and 0 for false). [The operator J is not found in Lukasiewicz’ original work but is included from A.N.Prior’s treatment.] For every combination of PN operators and variables, an expression is a "well-formed formula" (WFF) if and only if it is a variable or it is a PN operator followed by the requisite number of operands (WFF instances). A combination of symbols will fail to be a "well-formed formula" if it is composed of a WFF followed by extraneous text, it uses an unrecognized character [uppercase character not in the above table or a non-alphabetic character], or it has insufficient operands for its operators. For invalid expressions, report the first error discovered in a left-toright scan of the expression. For instance, immediately report an error on an invalid character. If a valid WFF is followed by extraneous text, report that as the error, even if the extraneous text has an invalid character. In addition, every WFF can be categorized as a tautology (true for all possible variable values), a contradiction (false for all possible variable values), or a contingent expression (true for some variable values, false for other variable values). The simplest contingent expression is simply 'p', true when p is true, false when p is false. One very simple contradiction is "KpNp", both p and not-p are true. Similarly, one very simple tautology is "ApNp", either p is true or not-p is true. For a more complex tautology, one expression of De Morgan’s Law is "EDpqANpNq". Input Your program is to accept lines until it receives an empty character string. Each line will contain only alphanumeric characters (no spaces or punctuation) that are to be parsed as potential "WFFs". Each line will contain fewer than 256 characters and will use at most 10 variables. There will be at most 32 non-blank lines before the terminating blank line. Output For each line read in, echo it back, followed by its correctness as a WFF, followed (if a WFF) with its category (tautology, contradiction, or contingent). In processing an input line, immediately terminate and report the line as not a WFF if you encounter an unrecognized operator (even though it may fail to be well-formed in another way as well). If it has extraneous text following the WFF, report it as incorrect. If it has insufficient operands, report that. Use exactly the format shown in the Sample Output below. Sample Input q Cp Cpq A01 Cpqr ANpp KNpp Qad CKNppq JDpqANpNq CDpwANpNq EDpqANpNq KCDpqANpNqCANpNqDpq Sample Output q is valid: contingent Cp is invalid: insufficient operands Cpq is valid: contingent A01 is invalid: invalid character Cpqr is invalid: extraneous text ANpp is valid: tautology KNpp is valid: contradiction Qad is invalid: invalid character CKNppq is valid: tautology JDpqANpNq is valid: contradiction CDpwANpNq is valid: contingent EDpqANpNq is valid: tautology KCDpqANpNqCANpNqDpq is valid: tautology
Hex Tile Equations 等式问题
Problem Description An amusing puzzle consists of a collection of hexagonal tiles packed together with each tile showing a digit or '=' or an arithmetic operation '+', '-', '*', or '/'. Consider continuous paths going through each tile exactly once, with each successive tile being an immediate neighbor of the previous tile. The object is to choose such a path so the sequence of characters on the tiles makes an acceptable equation, according to the restrictions listed below. A sequence is illustrated in each figure above. In Figure 1, if you follow the gray path from the top, the character sequence is"6/3=9-7". Similarly, in Figure 2, start from the bottom left 3 to get "3*21+10=73". There are a lot of potential paths through a moderate sized hex tile pattern. A puzzle player may get frustrated and want to see the answer. Your task is to automate the solution. The arrangement of hex tiles and choices of characters in each puzzle satisfy these rules: The hex pattern has an odd number of rows greater than 2. The odd numbered rows will all contain the same number of tiles. Even numbered rows will have one more hex tile than the odd numbered rows and these longer even numbered rows will stick out both to the left and the right of the odd numbered rows. 1.There is exactly one 2. '=' in the hex pattern. 3. There are no more than two '*' characters in the hex pattern. 4. There will be fewer than 14 total tiles in the hex pattern. 5.With the restrictions on allowed character sequences described below, there will be a unique acceptable solution in the hex pattern. To have an acceptable solution from the characters in some path, the expressions on each side of the equal sign must be in acceptable form and evaluate to the same numeric value. The following rules define acceptable form of the expressions on each side of the equal sign and the method of expression evaluation: 6.The operators '+', '-', '*', and '/' are only considered as binary operators, so no character sequences where '+' or '-' would be a unary operator are acceptable. For example "-2*3=-6" and "1 =5+-4" are not acceptable. 7.The usual precedence of operations is not used. Instead all operations have equal precedence and operations are carried out from left to right. For example "44-4/2=2+3*4" is acceptable and "14=2+3*4" is not acceptable. 8.If a division operation is included, the equation can only be acceptable if the division operation works out to an exact integer result. For example "10/5=12/6" and "7+3/5=3*4/6" are acceptable. "5/2*4=10" is not acceptable because the sides would only be equal with exact mathematical calculation including an intermediate fractional result. "5/2*4=8" is not acceptable because the sides of the equation would only be equal if division were done with truncation. 9.At most two digits together are acceptable. For example, " 9. 123+1 = 124" is not acceptable. 10.A character sequences with a '0' directly followed by another digit is not acceptable. For example,"3*05=15" is not acceptable. With the assumptions above, an acceptable expression will never involve an intermediate or final arithmetic result with magnitude over three million. Input The input will consist of one to fifteen data sets, followed by a line containing only 0. The first line of a dataset contains blank separated integers r c, where r is the number of rows in the hex pattern and c is the number of entries in the odd numbered rows. The next r lines contain the characters on the hex tiles, one row per line. All hex tile characters for a row are blank separated. The lines for odd numbered rows also start with a blank, to better simulate the way the hexagons fit together. Properties 1-5 apply. Output There is one line of output for each data set. It is the unique acceptable equation according to rules 6-10 above. The line includes no spaces. Sample Input 5 1 6 / 3 = 9 - 7 3 3 1 + 1 * 2 0 = 3 3 7 5 2 9 - * 2 = 3 4 + 8 3 4 / 0 Sample Output 6/3=9-7 3*21+10=73 8/4+3*9-2=43
Fight the Landlord 的编写设计
Problem Description Fight the Landlord (斗地主) is a card game for three players. In each hand one player, the "landlord", plays alone and the others form a team(may called two peasants). The landlord's aim is to be the first to play out all his cards in valid combinations, and the team wins if any one of them manages to play all their cards before the landlord. A complete deck consists of 52 standard cards plus 2 jokers, red and black. The cards rank from high to low: R(Red Joker), B(Black joker), 2, A, K, Q, J, T(10), 9, 8, 7, 6, 5, 4, 3. Each rank of standard card has 4 cards. The landlord plays first, and may play a single card or any legal combination. Each subsequent player in anticlockwise order must either pass (play no card) or beat the previous play by playing a higher combination of the same number of cards and same type. There are just two exceptions to this: a rocket can beat any combination, and a bomb can beat any combination except a higher bomb or rocket - see definitions below. In this game, there are thirteen types of combination that can be played: 1. Single card - ranking from 3 (low) up to red joker (high) as explained above. 2. Pair - two cards of the same rank, from 3 (low) up to 2 (high), for example 3-3, A-A. 3. Triplet - three cards of the same rank, for example 9-9-9. 4. Triplet with an attached card - a triplet with a single card added, the single card must be different from the triplet, for example 6-6-6-8. These rank according to the rank of the triplet - so for example 9-9-9-3 beats 8-8-8-A. 5. Triplet with an attached pair - a triplet with a pair added, the ranking being determined by the rank of the triplet - for example Q-Q-Q-6-6 beats 10-10-10-K-K. 6. Sequence - at least five cards of consecutive rank, from 3 up to ace - for example 8-9-10-J-Q. 2 and jokers cannot be used. 7. Sequence of pairs - at least three pairs of consecutive ranks, from 3 up to A. 2 and jokers cannot be used. For example 10-10-J-J-Q-Q-K-K. 8. Sequence of triplets - at least two triplets of consecutive ranks from 3 up to A. 2 cannot be used. For example 4-4-4-5-5-5. 9. Sequence of triplets with attached cards - an extra card is added to each triplet. Only the triplets have to be in sequence, for example 7-7-7-8-8-8-3-6. The attached cards must be different from all the triplets and from each other. Although triplets of 2 cannot be included in the triplets sequence, a 2 or a joker or one of each can be attached, but not both jokers. 10. Sequence of triplets with attached pairs - an extra pair is attached to each triplet. Only the triplets have to be in sequence - for example 8-8-8-9-9-9-4-4-J-J. The pairs must be different in rank from each other and from all the triplets. Although triplets of 2 cannot be included in the triplets sequence, a pair of 2 can be attached. Note that attached single cards and attached pairs cannot be mixed - for example 3-3-3-4-4-4-6-7-7 is not valid. 11. Bomb - four cards of the same rank. A bomb can beat everything except a rocket or a bomb with higher rank. 12. Rocket - a pair of jokers. It is the highest combination and beats anything else, including bombs. 13. Quadplex set - there are two types: a quad (four cards of the same rank) with two single cards of different ranks attached, such as 6-6-6-6-8-9, or a quad with two pairs of different ranks attached, such as J-J-J-J-9-9-Q-Q. 2 and jokers can be attached, but you cannot use both jokers in one quadplex set. Quadplex sets are ranked according to the rank of the quad. Note that a quadplex set can only beat a lower quadplex set of the same type, and cannot beat any other type of combination. Also a quadplex set can be beaten by a bomb made of lower ranked cards. At the beginning of each round, the landlord has 20 cards and the others each get 17 cards, can the landlord has a strategy to bring out his cards all the way alone until he wins the game and leave no chance for the others to play? Input The first line of the input is T, which stands for the number of test cases you need to solve. For each case, three lines are given. The first line contains 20 characters describes 20 cards in landlord’s hand. The following two lines each contains 17 characters describe the two peasants’ cards. It is guaranteed that the given 54 cards make up a complete deck. Output For each case, you should output “Case k: ” first, where k indicates the case number and counts from one. Then output “Yes” or “No”. Sample Input 6 34567TJQKA2222BRKKKA 45678AAQQJJTT3339 45566778889994TJQ 3456789TJQ2222BRKKK3 456789TJQKAAA3344 5566778899TTJJQQA 3456789TJQKKK4BR2222 456789TJQKA9TTJJQ AAA3334556677889Q 33445566778899JJJ222 B2AAAKQQTT3456789 RKKKAQQTT3456789J BR33336666KKKK222245 TTTT7777445JJQQAA 99998888455QQJJAA AAAKKKQQQJJJTTT98765 BR234555666777888 222333444999TJQKA Sample Output Case 1: Yes Case 2: Yes Case 3: No Case 4: Yes Case 5: No Case 6: Yes
android 8.0 Crash看不到具体信息?
跑Monkey跑出来的,也不知道复现步骤,报错直接ViewGroup了,追了下只知道可能是焦点问题,但定位不了具体地方,不知道怎么追了。求指导 --------- beginning of crash 09-11 03:30:45.063 2178 2178 E AndroidRuntime: FATAL EXCEPTION: main 09-11 03:30:45.063 2178 2178 E AndroidRuntime: Process: com.android.systemui, PID: 2178 09-11 03:30:45.063 2178 2178 E AndroidRuntime: java.lang.IllegalArgumentException: parameter must be a descendant of this view 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:5959) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:5888) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.ViewRootImpl.scrollToRectOrFocus(ViewRootImpl.java:3279) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.ViewRootImpl.draw(ViewRootImpl.java:2879) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2810) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2363) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1396) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6773) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:966) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:778) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:713) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:790) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6518) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 09-11 03:30:45.063 2178 2178 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) 09-11 03:30:45.077 3176 3288 E GooglePlayServicesUtil: The Google Play services resources were not found. Check your project configuration to ensure that the resources are included. 09-11 03:30:45.113 1176 3065 I am_crash: [2178,0,com.android.systemui,952647181,java.lang.IllegalArgumentException,parameter must be a descendant of this view,ViewGroup.java,5959] 09-11 03:30:44.836 2178 2178 W ViewRootImpl[RecentsActivity]: Cancelling event due to no window focus: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_DPAD_RIGHT, scanCode=0, metaState=0, flags=0x28, repeatCount=0, eventTime=26982761, downTime=26982761, deviceId=-1, source=0x101 } 09-11 03:30:45.156 1176 3065 W ActivityManager: Force-killing crashed app com.android.systemui at watcher's request 09-11 03:30:45.165 1176 3065 W ActivityManager: Force finishing activity com.android.systemui/.recents.RecentsActivity 09-11 03:30:45.166 1176 3065 I am_finish_activity: [0,29690108,13,com.android.systemui/.recents.RecentsActivity,force-crash]
qt交叉编译everywhere-source报错
编译QT ARM开发环境出现以下错误 进入 qt-everywhere-src-5.14.0下 设置参数如下 ```shell ./configure -v -prefix /home/aron566/qt_everywhere_source -opensource -release -xplatform linux-arm-gnueabi-g++ -no-opengl -no-dbus -no-icu -no-eglfs -no-iconv -skip qtpurchasing -skip qt3d -skip qtcanvas3d -skip qtdeclarative -nomake examples -I/home/aron566/nfs/arm_tslib/include -L/home/aron566/nfs/arm_tslib/lib ``` make 编译后报错如下: ```shell /opt/arm-2014.05/arm-none-linux-gnueabi/include/c++/4.8.3/atomic:828:5: note: template argument deduction/substitution failed: In file included from io/../../3rdparty/forkfd/forkfd_atomic.h:29:0, from io/../../3rdparty/forkfd/forkfd.c:93, from io/forkfd_qt.cpp:48: io/../../3rdparty/forkfd/forkfd_c11.h:56:42: note: 'ffd_atomic_int {aka std::__atomic_base<int>}' is not derived from 'volatile std::atomic<_ITp>' atomic_store_explicit(ptr, val, order) ^ io/../../3rdparty/forkfd/forkfd.c:686:9: note: in expansion of macro 'ffd_atomic_store' ffd_atomic_store(&info->pid, pid, FFD_ATOMIC_RELEASE); ^ In file included from ../../include/QtCore/../../src/corelib/thread/qatomic_cxx11.h:45:0, from ../../include/QtCore/qatomic_cxx11.h:1, from ../../include/QtCore/../../src/corelib/thread/qbasicatomic.h:53, from ../../include/QtCore/qbasicatomic.h:1, from ../../include/QtCore/../../src/corelib/thread/qatomic.h:46, from ../../include/QtCore/qatomic.h:1, from global/qglobal.h:1296, from global/qt_pch.h:56: /home/aron566/opt/arm-2014.05/arm-none-linux-gnueabi/include/c++/4.8.3/atomic:822:5: note: template<class _ITp> void std::atomic_store_explicit(std::atomic<_ITp>*, _ITp, std::memory_order) atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, ^ /home/aron566/opt/arm-2014.05/arm-none-linux-gnueabi/include/c++/4.8.3/atomic:822:5: note: template argument deduction/substitution failed: In file included from io/../../3rdparty/forkfd/forkfd_atomic.h:29:0, from io/../../3rdparty/forkfd/forkfd.c:93, from io/forkfd_qt.cpp:48: io/../../3rdparty/forkfd/forkfd_c11.h:56:42: note: 'ffd_atomic_int {aka std::__atomic_base<int>}' is not derived from 'std::atomic<_ITp>' atomic_store_explicit(ptr, val, order) ^ io/../../3rdparty/forkfd/forkfd.c:686:9: note: in expansion of macro 'ffd_atomic_store' ffd_atomic_store(&info->pid, pid, FFD_ATOMIC_RELEASE); ^ Makefile:31236: recipe for target '.obj/forkfd_qt.o' failed make[3]: *** [.obj/forkfd_qt.o] Error 1 make[3]: Leaving directory '/home/aron566/qt-everywhere-src-5.14.0/qtbase/src/corelib' Makefile:222: recipe for target 'sub-corelib-make_first' failed make[2]: *** [sub-corelib-make_first] Error 2 make[2]: Leaving directory '/home/aron566/qt-everywhere-src-5.14.0/qtbase/src' Makefile:50: recipe for target 'sub-src-make_first' failed make[1]: *** [sub-src-make_first] Error 2 make[1]: Leaving directory '/home/aron566/qt-everywhere-src-5.14.0/qtbase' Makefile:73: recipe for target 'module-qtbase-make_first' failed make: *** [module-qtbase-make_first] Error 2 ``` 不知道有啥解决方法?
QT使用std::unordered_map时报错:the code model could not parse an included file, which might lead to incorrect code completion and highlighting
编译时报大量的这种错误:<br><br> ![图片说明](https://img-ask.csdn.net/upload/201912/27/1577439228_688736.png) <br> <br> 已把无关的代码注释省略了: <br> <br> ``` #ifndef APROCHDATAMODELREGISTRY_H #define APROCHDATAMODELREGISTRY_H // #include ... #include <memory> #include <utility> #include <functional> #include <QString> // 只要包含这个文件,就会报错,但不包含就无法使用unordered_map #include <unordered_map> APROCH_NAMESPACE_BEGIN class APROCH_EXPORT AprochDataModelRegistry { public: using RegisteredModelsCategoryMap = std::unordered_map<QString, QString>; // ... private: RegisteredModelsCategoryMap mRegisteredModelsCategory; // ... }; APROCH_NAMESPACE_END #endif // APROCHDATAMODELREGISTRY_H ```
运行ionic cordova platform add android不成功
各位大神: 在运用Ionic 开发手机APP的过程中遇到困难,ionic安装的是最新的长期支持版的,cordova安装的也是最新版的,但在运行ionic start shop tabs后,再运行ionic cordova platform add android为项目增加Android平台支持不成功,命令行窗口出现如下: C:\Users\WangQitong\jdshop>ionic cordova platform add android C:\Users\WangQitong\jdshop>"node" "C:\Users\WangQitong\AppData\Roaming\npm\\node_modules\ionic\bin\ionic" cordova platform add android > cordova.cmd platform add android C:\Users\WangQitong\jdshop>"node" "C:\Users\WangQitong\AppData\Roaming\npm\\node_modules\cordova\bin\cordova" "platform" "add" "android" Using cordova-fetch for cordova-android@^8.0.0 Failed to fetch platform cordova-android@^8.0.0 Probably this is either a connection problem, or platform spec is incorrect. Check your connection and platform name/version/URL. Error: npm: Command failed with exit code 4294963238 Error output: npm WARN rm not removing C:\Users\WangQitong\jdshop\node_modules\.bin\webdriver-manager.cmd as it wasn't installed by C:\Users\WangQitong\jdshop\node_modules\webdriver-manager npm WARN rm not removing C:\Users\WangQitong\jdshop\node_modules\.bin\webdriver-manager as it wasn't installed by C:\Users\WangQitong\jdshop\node_modules\webdriver-manager npm WARN rm not removing C:\Users\WangQitong\jdshop\node_modules\.bin\webdriver-manager.cmd as it wasn't installed by C:\Users\WangQitong\jdshop\node_modules\_webdriver-manager@12.1.7@webdriver-manager npm WARN rm not removing C:\Users\WangQitong\jdshop\node_modules\.bin\webdriver-manager as it wasn't installed by C:\Users\WangQitong\jdshop\node_modules\_webdriver-manager@12.1.7@webdriver-manager npm WARN webpack-dev-middleware@3.7.2 requires a peer of webpack@^4.0.0 but none is installed. You must install peer dependencies yourself. npm WARN The package @angular/compiler is included as both a dev and production dependency. npm ERR! code ENOENT npm ERR! syscall rename npm ERR! path C:\Users\WangQitong\jdshop\node_modules\_brace-expansion@1.1.11@brace-expansion\node_modules\balanced-match npm ERR! dest C:\Users\WangQitong\jdshop\node_modules\_brace-expansion@1.1.11@brace-expansion\node_modules\balanced-match npm ERR! errno -4058 npm ERR! enoent ENOENT: no such file or directory, rename 'C:\Users\WangQitong\jdshop\node_modules\_brace-expansion@1.1.11@brace-expansion\node_modules\balanced-match' -> 'C:\Users\WangQitong\jdshop\node_modules\_brace-expansion@1.1.11@brace-expansion\node_modules\balanced-match' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\WangQitong\AppData\Roaming\npm-cache\_logs\2019-11-01T12_41_07_880Z-debug.log > ionic cordova resources android --force > cordova-res.cmd android [cordova-res] [cordova-res] C:\Users\WangQitong\jdshop>"node" "C:\Users\WangQitong\AppData\Roaming\npm\\node_modules\cordova-res\bin\cordova-res" "android" [cordova-res] Generated 18 resources for android [cordova-res] Wrote to config.xml 请问是什么原因呢?
Fruit Ninja Extreme 如何计算呢
Problem Description   Cut or not to cut, it is a question.   In Fruit Ninja, comprising three or more fruit in one cut gains extra bonuses. This kind of cuts are called bonus cuts.   Also, performing the bonus cuts in a short time are considered continual, iff. when all the bonus cuts are sorted, the time difference between every adjacent cuts is no more than a given period length of W.   As a fruit master, you have predicted the times of potential bonus cuts though the whole game. Now, your task is to determine how to cut the fruits in order to gain the most bonuses, namely, the largest number of continual bonus cuts.   Obviously, each fruit is allowed to cut at most once. i.e. After previous cut, a fruit will be regarded as invisible and won't be cut any more.   In addition, you must cut all the fruit altogether in one potential cut. i.e. If your potential cut contains 6 fruits, 2 of which have been cut previously, the 4 left fruits have to be cut altogether. Input   There are multiple test cases.   The first line contains an integer, the number of test cases.   In each test case, there are three integer in the first line: N(N<=30), the number of predicted cuts, M(M<=200), the number of fruits, W(W<=100), the time window.   N lines follows.   In each line, the first integer Ci(Ci<=10) indicates the number of fruits in the i-th cuts.   The second integer Ti(Ti<=2000) indicate the time of this cut. It is guaranteed that every time is unique among all the cuts.   Then follow Ci numbers, ranging from 0 to M-1, representing the identifier of each fruit. If two identifiers in different cuts are the same, it means they represent the same fruit. Output   For each test case, the first line contains one integer A, the largest number of continual bonus cuts.   In the second line, there are A integers, K1, K2, ..., K_A, ranging from 1 to N, indicating the (Ki)-th cuts are included in the answer. The integers are in ascending order and each separated by one space. &nbsp;If there are multiple best solutions, any one is accepted. Sample Input 1 4 10 4 3 1 1 2 3 4 3 3 4 6 5 3 7 7 8 9 3 5 9 5 4 Sample Output 3 1 2 3
mysql connector c++ 抛出异常
我在官网下了mysql-connector-c++-8.0.17之后跑官网上的例程,抛出了下面这个错误: Connector/C++ standalone program example... Creating session on tcp://127.0.0.1 ... terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc 已放弃 (核心已转储) 我想知道是哪里出了问题,应该怎么解决 我用的系统是Ubuntu 18.04.4 下面是我的cmake ``` cmake_minimum_required(VERSION 3.10) project(SERVER) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Boost Library set(BOOST_INC_DIR /usr/local/include) set(BOOST_LIB_DIR /usr/local/lib) include_directories(${BOST_INC_DIR}) link_directories(${BOOST_LIB_DIR}) add_subdirectory(src) ``` ``` # Class MySqlConnector referenced by Class MySqlSession set(MYSQLCONNECTOR_LIB_DIR /usr/local/lib/mysql-connector-c++) set(MYSQLCONNECTOR_INC_DIR /usr/local/include) set(MYSQLCONNECTOR_SRC mysqlcppconn) include_directories(${MYSQLCONNECTOR_INC_DIR} ${SQL_INC_DIR}) link_directories(${MYSQLCONNECTOR_LIB_DIR}) add_executable(Server main.cpp) target_link_libraries(Server ${MYSQLCONNECTOR_SRC}) ``` ``` /* * Copyright (c) 2008, 2019, Oracle and/or its affiliates. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2.0, as * published by the Free Software Foundation. * * This program is also distributed with certain software (including * but not limited to OpenSSL) that is licensed under separate terms, * as designated in a particular file or component or in included license * documentation. The authors of MySQL hereby grant you an * additional permission to link the program and your derivative works * with the separately licensed software that they have included with * MySQL. * * Without limiting anything contained in the foregoing, this file, * which is part of MySQL Connector/C++, is also subject to the * Universal FOSS Exception, version 1.0, a copy of which can be found at * http://oss.oracle.com/licenses/universal-foss-exception. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License, version 2.0, for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /* Basic example of an application using JDBC API of Connector/C++ */ /* Standard C++ includes */ #include <stdlib.h> #include <iostream> #include <sstream> #include <stdexcept> /* Note: Boost must be in the include path to build code which uses the JDBC API. */ #include <boost/scoped_ptr.hpp> #include <mysql/jdbc.h> #define DEFAULT_URI "tcp://127.0.0.1" #define EXAMPLE_USER "root" #define EXAMPLE_PASS "" #define EXAMPLE_DB "test" using namespace std; /* Usage example for Driver, Connection, (simple) Statement, ResultSet */ int main(int argc, const char **argv) { const char *url = (argc > 1 ? argv[1] : DEFAULT_URI); const string user(argc >= 3 ? argv[2] : EXAMPLE_USER); const string pass(argc >= 4 ? argv[3] : EXAMPLE_PASS); const string database(argc >= 5 ? argv[4] : EXAMPLE_DB); cout << endl; cout << "Connector/C++ standalone program example..." << endl; cout << endl; try { sql::Driver * driver = sql::mysql::get_driver_instance(); /* Using the Driver to create a connection */ cout << "Creating session on " << url << " ..." << endl << endl; boost::scoped_ptr< sql::Connection > con(driver->connect(url, user, pass)); con->setSchema(database); boost::scoped_ptr< sql::Statement > stmt(con->createStatement()); boost::scoped_ptr< sql::ResultSet > res(stmt->executeQuery("SELECT 'Welcome to Connector/C++' AS _message")); cout << "\t... running 'SELECT 'Welcome to Connector/C++' AS _message'" << endl; while (res->next()) { cout << "\t... MySQL replies: " << res->getString("_message") << endl; cout << "\t... say it again, MySQL" << endl; cout << "\t....MySQL replies: " << res->getString(1) << endl; } } catch (sql::SQLException &e) { /* The JDBC API throws three different exceptions: - sql::MethodNotImplementedException (derived from sql::SQLException) - sql::InvalidArgumentException (derived from sql::SQLException) - sql::SQLException (derived from std::runtime_error) */ cout << "# ERR: SQLException in " << __FILE__; cout << "(" << "EXAMPLE_FUNCTION" << ") on line " << __LINE__ << endl; /* Use what() (derived from std::runtime_error) to fetch the error message */ cout << "# ERR: " << e.what(); cout << " (MySQL error code: " << e.getErrorCode(); cout << ", SQLState: " << e.getSQLState() << " )" << endl; return EXIT_FAILURE; } cout << endl; cout << "... find more at http://www.mysql.com" << endl; cout << endl; return EXIT_SUCCESS; } ```
为什么我看了这个关于高校人员信息管理系统设计的代码运行时总是会说找不到“common.h”这个文件,这个那里有错误呢?
#ifndef COMMON_H_INCLUDED #define COMMON_H_INCLUDED #include<string> #include<iostream> #include<iomanip> class COMMON { protected: std::string name; bool sex; int age; std::string id; static int person_sum; static int man_sum; static int woman_sum; public: COMMON(std::string a, bool b, int c, std::string d); virtual ~COMMON(); static int get_person_sum(); static int get_man_sum(); static int get_woman_sum(); virtual void show(){} virtual void show_row(){} virtual bool change(){} std::string get_name(){return name;} bool get_sex(){return sex;} int get_age(){return age;} std::string get_id(){return id;} }; int COMMON::person_sum = 0; int COMMON::man_sum = 0; int COMMON::woman_sum = 0; int COMMON::get_person_sum() { return person_sum; } int COMMON::get_man_sum() { return man_sum; } int COMMON::get_woman_sum() { return woman_sum; } COMMON::COMMON(std::string a, bool b, int c, std::string d): name(a), sex(b), age(c), id(d) { person_sum++; if(b) man_sum++; else woman_sum++; } COMMON::~COMMON() { person_sum--; if(sex) man_sum--; else woman_sum--; } #endif // COMMON_H_INCLUDED tester.h 实验员: #ifndef TESTER_H_INCLUDED #define TESTER_H_INCLUDED #include"common.h" class TESTER: public COMMON { private: std::string laboratory; std::string title; static int tester_sum; public: TESTER(std::string a = "haha", bool b = 1, int c = 19, std::string d = "1", std::string e = "tt", std::string f = "学生"); ~TESTER(); static int get_tester_sum(); virtual void show(); virtual void show_row(); virtual bool change(); std::string get_laboratory(){return laboratory;} std::string get_title(){return title;} }; int TESTER::tester_sum = 0; int TESTER::get_tester_sum() { return tester_sum; } TESTER::TESTER(std::string a, bool b, int c, std::string d, std::string e, std::string f): COMMON(a,b,c,d), laboratory(e), title(f) { tester_sum++; } TESTER::~TESTER() { tester_sum--; } void TESTER::show() { std::cout << "实验员:\n"; std::cout << "姓名:\t\t" << name << std::endl; std::cout << "姓别:\t\t"; if(sex) std::cout << "男\n"; else std::cout << "女\n"; std::cout << "年龄:\t\t" << age << std::endl; std::cout << "ID:\t\t" << id << std::endl; std::cout << "所属实验室:\t" << laboratory << std::endl; std::cout << "职务:\t\t" << title << std::endl; } void TESTER::show_row() { std::cout << std::left << std::setw(8) << name; if(sex) std::cout << std::left << std::setw(8) << "男"; else std::cout << std::left << std::setw(8) << "女"; std::cout << std::left << std::setw(8) << age; std::cout << std::left << std::setw(16) << id; std::cout << std::left << std::setw(16) << laboratory; std::cout << std::left << std::setw(16) << title; std::cout << std::endl; } bool TESTER::change() { std::cout << "姓名:\t\t" ; std::string new_name; std::cin >> new_name; for(unsigned int i = 0; i < new_name.length(); i++) { if(new_name[i] >= '0' && new_name[i] <= '9') { std::cout << "输入非法,输入任意键返回\n"; return 1; } } name = new_name; std::cout << "姓别:\t\t"; std::string a; std::cin >> a; if(sex) man_sum--; else woman_sum--; if(a == "男") sex = 1, man_sum++; else sex = 0, woman_sum++; std::cout << "年龄:\t\t"; std::cin >> age; std::cout << "所属实验室:\t"; std::cin >> laboratory; std::cout << "职务:\t\t"; std::cin >> title; return 0; } #endif // TESTER_H_INCLUDED teacher.h 教师: #ifndef TEACHER_H_INCLUDED #define TEACHER_H_INCLUDED #include"common.h" class TEACHER: virtual public COMMON { protected: std::string department; std::string profession; std::string title; static int teacher_sum; public: TEACHER(std::string a = "xixi", bool b = 1, int c = 30, std::string d = "213", std::string e = "计算机与信息工程学院", std::string f = "计算机科学与技术", std::string g = "教师"); ~TEACHER(); static int get_teacher_sum(); virtual void show(); virtual void show_row(); virtual bool change(); std::string get_department(){return department;} std::string get_profession(){return profession;} std::string get_title(){return title;} }; int TEACHER::teacher_sum = 0; int TEACHER::get_teacher_sum() { return teacher_sum; } TEACHER::TEACHER(std::string a, bool b, int c, std::string d, std::string e, std::string f, std::string g): COMMON(a,b,c,d), department(e), profession(f), title(g) { teacher_sum++; } TEACHER::~TEACHER() { teacher_sum--; } void TEACHER::show() { std::cout << "教师:\n"; std::cout << "姓名:\t\t" << name << std::endl; std::cout << "姓别:\t\t"; if(sex) std::cout << "男\n"; else std::cout << "女\n"; std::cout << "年龄:\t\t" << age << std::endl; std::cout << "ID:\t\t" << id << std::endl; std::cout << "院系:\t\t" << department << std::endl; std::cout << "专业:\t\t" << profession << std::endl; std::cout << "职务:\t\t" << title << std::endl; } void TEACHER::show_row() { std::cout << std::left << std::setw(8) << name; if(sex) std::cout << std::left << std::setw(8) << "男"; else std::cout << std::left << std::setw(8) << "女"; std::cout << std::left << std::setw(8) << age; std::cout << std::left << std::setw(16) << id; std::cout << std::left << std::setw(16) << department; std::cout << std::left << std::setw(16) << profession; std::cout << std::left << std::setw(16) << title; std::cout << std::endl; } bool TEACHER::change() { std::cout << "姓名:\t\t" ; std::string new_name; std::cin >> new_name; for(unsigned int i = 0; i < new_name.length(); i++) { if(new_name[i] >= '0' && new_name[i] <= '9') { std::cout << "输入非法,输入任意键返回\n"; return 1; } } name = new_name; std::cout << "姓别:\t\t"; std::string a; std::cin >> a; if(sex) man_sum--; else woman_sum--; if(a == "男") sex = 1, man_sum++; else sex = 0, woman_sum++; std::cout << "年龄:\t\t"; std::cin >> age; std::cout << "院系:\t\t"; std::cin >> department; std::cout << "专业:\t\t"; std::cin >> profession; std::cout << "职务:\t\t"; std::cin >> title; return 0; } #endif // TEACHER_H_INCLUDED administrator.h 行政人员: #ifndef ADMINISTRATOR_H_INCLUDED #define ADMINISTRATOR_H_INCLUDED #include"common.h" class ADMINISTRATOR: virtual public COMMON { protected: std::string politics; std::string position; static int administrator_sum; public: ADMINISTRATOR(std::string a = "huhu", bool b = 1, int c = 39, std::string d = "176", std::string e = "群众", std:: string f = "社会主义新青年"); ~ADMINISTRATOR(); static int get_administrator_sum(); virtual void show(); virtual void show_row(); virtual bool change(); std::string get_politics(){return politics;} std::string get_position(){return position;} }; int ADMINISTRATOR::administrator_sum = 0; int ADMINISTRATOR::get_administrator_sum() { return administrator_sum; } ADMINISTRATOR::ADMINISTRATOR(std::string a, bool b, int c, std::string d, std::string e, std::string f): COMMON(a,b,c,d), politics(e), position(f) { administrator_sum++; } ADMINISTRATOR::~ADMINISTRATOR() { administrator_sum--; } void ADMINISTRATOR::show() { std::cout << "行政人员:\n"; std::cout << "姓名:\t\t" << name << std::endl; std::cout << "姓别:\t\t"; if(sex) std::cout << "男\n"; else std::cout << "女\n"; std::cout << "年龄:\t\t" << age << std::endl; std::cout << "ID:\t\t" << id << std::endl; std::cout << "政治面貌:\t" << politics << std::endl; std::cout << "职称:\t\t" << position << std::endl; } void ADMINISTRATOR::show_row() { std::cout << std::left << std::setw(8) << name; if(sex) std::cout << std::left << std::setw(8) << "男"; else std::cout << std::left << std::setw(8) << "女"; std::cout << std::left << std::setw(8) << age; std::cout << std::left << std::setw(16) << id; std::cout << std::left << std::setw(16) << politics; std::cout << std::left << std::setw(16) << position; std::cout << std::endl; } bool ADMINISTRATOR::change() { std::cout << "姓名:\t\t" ; std::string new_name; std::cin >> new_name; for(unsigned int i = 0; i < new_name.length(); i++) { if(new_name[i] >= '0' && new_name[i] <= '9') { std::cout << "输入非法,输入任意键返回\n"; return 1; } } name = new_name; std::cout << "姓别:\t\t"; std::string a; std::cin >> a; if(sex) man_sum--; else woman_sum--; if(a == "男") sex = 1, man_sum++; else sex = 0, woman_sum++; std::cout << "年龄:\t\t"; std::cin >> age; std::cout << "政治面貌:\t"; std::cin >> politics; std::cout << "职称:\t\t"; std::cin >> position; return 0; } #endif // ADMINISTRATOR_H_INCLUDED tea&admi.h 教师及行政人员: #ifndef TEAADMI_H_INCLUDED #define TEAADMI_H_INCLUDED #include"teacher.h" #include"administrator.h" class TEAADMI: public TEACHER, public ADMINISTRATOR { private: static int teaadmi_sum; public: TEAADMI(std::string a = "maomao", bool b = 1, int c = 59, std::string d = "0", std::string e = "计算机与信息工程学院", std::string f = "计算机科学与技术", std::string g = "教师", std::string h = "群众", std:: string i = "社会主义新青年"); ~TEAADMI(); static int get_teaadmi_sum(); virtual void show(); virtual void show_row(); virtual bool change(); }; int TEAADMI::teaadmi_sum = 0; int TEAADMI::get_teaadmi_sum() { return teaadmi_sum; } TEAADMI::TEAADMI(std::string a, bool b, int c, std::string d, std::string e, std::string f, std::string g, std::string h, std::string i): COMMON(a,b,c,d), TEACHER(a,b,c,d,e,f,g), ADMINISTRATOR(a,b,c,d,h,i) { teaadmi_sum++; } TEAADMI::~TEAADMI() { teaadmi_sum--; } void TEAADMI::show() { std::cout << "教师及行政人员:\n"; std::cout << "姓名:\t\t" << name << std::endl; std::cout << "姓别:\t\t"; if(sex) std::cout << "男\n"; else std::cout << "女\n"; std::cout << "年龄:\t\t" << age << std::endl; std::cout << "ID:\t\t" << id << std::endl; std::cout << "院系:\t\t" << department << std::endl; std::cout << "专业:\t\t" << profession << std::endl; std::cout << "职务:\t\t" << title << std::endl; std::cout << "政治面貌:\t" << politics << std::endl; std::cout << "职称:\t\t" << position << std::endl; } void TEAADMI::show_row() { std::cout << std::left << std::setw(8) << name; if(sex) std::cout << std::left << std::setw(8) << "男"; else std::cout << std::left << std::setw(8) << "女"; std::cout << std::left << std::setw(8) << age; std::cout << std::left << std::setw(16) << id; std::cout << std::left << std::setw(16) << department; std::cout << std::left << std::setw(16) << profession; std::cout << std::left << std::setw(16) << title; std::cout << std::left << std::setw(16) << politics; std::cout << std::left << std::setw(16) << position; std::cout << std::endl; } bool TEAADMI::change() { std::cout << "姓名:\t\t" ; std::string new_name; std::cin >> new_name; for(unsigned int i = 0; i < new_name.length(); i++) { if(new_name[i] >= '0' && new_name[i] <= '9') { std::cout << "输入非法,输入任意键返回\n"; return 1; } } name = new_name; std::cout << "姓别:\t\t"; std::string a; std::cin >> a; if(sex) man_sum--; else woman_sum--; if(a == "男") sex = 1, man_sum++; else sex = 0, woman_sum++; std::cout << "年龄:\t\t"; std::cin >> age; std::cout << "院系:\t\t"; std::cin >> department; std::cout << "专业:\t\t"; std::cin >> profession; std::cout << "职务:\t\t"; std::cin >> title; std::cout << "政治面貌:\t"; std::cin >> politics; std::cout << "职称:\t\t"; std::cin >> position; return 0; } #endif // TEA&ADMI_H_INCLUDED interface.h 界面: #ifndef INTERFACE_H_INCLUDED #define INTERFACE_H_INCLUDED #include"teacher.h" #include"tester.h" #include"administrator.h" #include"tea&admi.h" #include<stdio.h> #include<stdlib.h> #include<conio.h> /*----------------函数声明-------------------*/ void interface_login(); //初始界面 void interface_Manager(); //管理者界面 void staff_list(); //管理者清单 #include"myfun.h" /*----------------函数定义-------------------*/ void interface_Manager() //管理界面 { int n=1; while(n) { system("cls"); std::cout << "------------欢迎来到只有神知道的领域 o(*≧▽≦)ツ----------\n"; std::cout << "-----------------------------------------------------------\n"; std::cout << "-----------------------------------------------------------\n"; std::cout << "------------- 输入1 添加信息 -------------\n"; std::cout << "------------- 输入2 查询信息 -------------\n"; std::cout << "------------- 输入3 浏览信息 -------------\n"; std::cout << "------------- 输入4 修改信息 -------------\n"; std::cout << "------------- 输入5 删除信息 -------------\n"; std::cout << "------------- 输入6 统计信息 -------------\n"; std::cout << "------------- 输入0 返回上一级 -------------\n"; std::cout << "-----------------------------------------------------------\n"; std::cout << "-----------------------------------------------------------\n"; std::cin >> n; switch(n) { case 1:Add_information();break; case 2: { int a = 1; if(!Query_information()) break; while(a) { std::cout << "输入1 修改信息\n"; std::cout << "输入2 删除信息\n"; std::cout << "输入0 返回上一级\n"; std::cin >> a; switch(a) { case 1:Edit_information(); a = 0; break; case 2:Delete_information(); a= 0; break; } } break; } case 3: { int a=1; while(a) { Browse_information(); std::cout << "输入1 修改信息\n"; std::cout << "输入2 删除信息\n"; std::cout << "输入0 返回上一级\n"; std::cin >> a; switch(a) { case 1:Edit_information(); break; case 2:Delete_information(); break; } } break; } case 4:Edit_information(); break; case 5:Delete_information(); break; case 6:count_information(); break; } } } void interface_login() //登入界面 { int n=1; while(n) { system("cls"); std::cout << "----------欢迎进入高校人员信息管理系统 o(*≧▽≦)ツ--------\n"; std::cout << "-----------------------------------------------------------\n"; std::cout << "-----------------------------------------------------------\n"; std::cout << "------------- 输入1 管理员账号登入 -------------\n"; std::cout << "------------- 输入2 查询信息 -------------\n"; std::cout << "------------- 输入3 浏览信息 -------------\n"; std::cout << "------------- 输入4 统计信息 -------------\n"; std::cout << "------------- 输入5 观看制作信息 -------------\n"; std::cout << "------------- 输入0 关闭系统 -------------\n"; std::cout << "-----------------------------------------------------------\n"; std::cout << "-----------------------------------------------------------\n"; std::cin >> n; switch(n) { case 1:login(); break; case 2:if(Query_information()) std::cout << "输入任意键,返回上一级\n", getch(); break; case 3:Browse_information(); std::cout << "输入任意键,返回上一级\n"; getch(); break; case 4:count_information(); break; case 5:staff_list(); break; } } } void staff_list() //制作人员名单 { system("cls"); std::cout << "-----------------------------------------------------------\n"; std::cout << "-----------------------------------------------------------\n"; std::cout << "--------------Include the following members----------------\n"; std::cout << "-------------- wzy ----------------\n"; std::cout << "-------------- ToRe ----------------\n"; std::cout << "-----------------------------------------------------------\n"; std::cout << "-----------------------------------------------------------\n\n\n"; std::cout << "\n输入任意键返回主菜单…\n"; getch(); } #endif // INTERFACE_H_INCLUDED myfun.h 主要功能实现: #ifndef MYFUN_H_INCLUDED #define MYFUN_H_INCLUDED #include<vector> #include<map> #include<fstream> /*----------------成员声明-------------------*/ std::multimap<std::string, COMMON *> sear; std::vector<TESTER*> tester; std::vector<TEACHER*> teacher; std::vector<ADMINISTRATOR*> administrator; std::vector<TEAADMI*> teaadmi; /*----------------函数声明-------------------*/ void Information_load(); //信息加载 void room_delete(); //释放空间 void login(); //登入函数 void Add_information(); //添加信息 bool Query_information(); //显示查询信息 void Browse_information(); //浏览信息 void Edit_information(); //修改信息 void Delete_information(); //删除信息 void count_information(); //统计信息 /*----------------函数定义-------------------*/ void Information_load() //信息加载 { std::ifstream in; in.open("实验员.txt", std::ios::in); std::string name, id; int age; bool sex; while(in >> name) { std::string laboratory, title; in >> sex >> age >> id >> laboratory >> title; TESTER *t = new TESTER(name,sex,age,id,laboratory,title); tester.push_back(t); sear.insert(make_pair(name, t)); sear.insert(make_pair(id, t)); } in.close(); in.open("教师.txt", std::ios::in); while(in >> name) { std::string department, profession, title; in >> sex >> age >> id >> department >> profession >> title; TEACHER *t = new TEACHER(name,sex,age,id,department,profession,title); teacher.push_back(t); sear.insert(make_pair(name, t)); sear.insert(make_pair(id, t)); } in.close(); in.open("行政人员.txt", std::ios::in); while(in >> name) { std::string politics, position; in >> sex >> age >> id >> politics >> position; ADMINISTRATOR *t = new ADMINISTRATOR(name,sex,age,id,politics,position); administrator.push_back(t); sear.insert(make_pair(name, t)); sear.insert(make_pair(id, t)); } in.close(); in.open("教师&行政人员.txt", std::ios::in); while(in >> name) { std::string department, profession, title, politics, position; in >> sex >> age >> id >> department >> profession >> title >> politics >> position; TEAADMI *t = new TEAADMI(name,sex,age,id,department,profession,title,politics,position); teaadmi.push_back(t); sear.insert(make_pair(name, t)); sear.insert(make_pair(id, t)); } } void room_delete() //释放空间 { for(auto iter:tester) delete iter; for(auto iter:teacher) delete iter; for(auto iter:administrator) delete iter; for(auto iter:teaadmi) delete iter; } void login() //登入函数 { std::string com; system("cls"); std::cout << "请输入密码\n"; getchar(); std::getline(std::cin,com); if(com == "bokuwasinnsekainokamitonaru") interface_Manager(); else { std::cout << "密码错误,输入任意键返回上一级\n"; getch(); } } void Add_information()//添加信息 { system("cls"); std::cout << "请输入添加类型\n1:实验员\t2:教师\t\t3:行政人员\t4:教师及行政人员\n"; int flag; std::cin >> flag; std::string name, se, id; int age; bool sex = 0; std::cout << "ID:\t\t"; std::cin >> id; for(unsigned int i = 0; i < id.length(); i++) { if(id[i] < '0' || id[i] > '9') { std::cout << "输入非法,输入任意键返回\n"; getch(); return; } } std::multimap<std::string, COMMON *>::iterator beg, en; beg = sear.lower_bound(id); en = sear.upper_bound(id); if(beg != en) { std::cout << "此ID已存在,输入任意键返回\n"; getch(); return; } std::cout << "姓名:\t\t"; std::cin >> name; for(unsigned int i = 0; i < name.length(); i++) { if(name[i] >= '0' && name[i] <= '9') { std::cout << "输入非法,输入任意键返回\n"; getch(); return; } } std::cout << "性别:\t\t"; std::cin >> se; if(se == "男") sex = 1; std::cout << "年龄:\t\t"; std::cin >> age; if(flag == 1) { std::string laboratory, title; std::cout << "实验室名称:\t"; std::cin >> laboratory; std::cout << "职务:\t\t"; std::cin >> title; TESTER *t = new TESTER(name,sex,age,id,laboratory,title); tester.push_back(t); sear.insert(make_pair(name, t)); sear.insert(make_pair(id, t)); std::ofstream out; out.open("实验员.txt", std::ios::app); out << name << " " << sex << " " << age << " " << id << " "; out << laboratory << " " << title << std::endl; out.close(); } if(flag == 2) { std::string department, profession, title; std::cout << "院系:\t\t"; std::cin >> department; std::cout << "专业:\t\t"; std::cin >> profession; std::cout << "职务:\t\t"; std::cin >> title; TEACHER *t = new TEACHER(name,sex,age,id,department,profession,title); teacher.push_back(t); sear.insert(make_pair(name, t)); sear.insert(make_pair(id, t)); std::ofstream out; out.open("教师.txt", std::ios::app); out << name << " " << sex << " " << age << " " << id << " "; out << department << " " << profession << " " << title << std::endl; out.close(); } if(flag == 3) { std::string politics, position; std::cout << "政治面貌:\t"; std::cin >> politics; std::cout << "职称:\t\t"; std::cin >> position; ADMINISTRATOR *t = new ADMINISTRATOR(name,sex,age,id,politics,position); administrator.push_back(t); sear.insert(make_pair(name, t)); sear.insert(make_pair(id, t)); std::ofstream out; out.open("行政人员.txt", std::ios::app); out << name << " " << sex << " " << age << " " << id << " "; out << politics << " " << position << std::endl; out.close(); } if(flag == 4) { std::string department, profession, title, politics, position; std::cout << "院系:\t\t"; std::cin >> department; std::cout << "专业:\t\t"; std::cin >> profession; std::cout << "职务:\t\t"; std::cin >> title; std::cout << "政治面貌:\t"; std::cin >> politics; std::cout << "职称:\t\t"; std::cin >> position; TEAADMI *t = new TEAADMI(name,sex,age,id,department,profession,title,politics,position); teaadmi.push_back(t); sear.insert(make_pair(name, t)); sear.insert(make_pair(id, t)); std::ofstream out; out.open("教师&行政人员.txt", std::ios::app); out << name << " " << sex << " " << age << " " << id << " "; out << department << " " << profession << " " << title << " "; out << politics << " " << position << std::endl; out.close(); } std::cout << "注册成功,输入任意键返回\n"; getch(); } void Delete_information() //删除信息 { std::cout << "输入目标ID以确认\n"; std::string aid; std::cin >> aid; for(unsigned int i = 0; i < aid.length(); i++) { if(aid[i] < '0' || aid[i] > '9') { std::cout << "输入非法,输入任意键返回\n"; getch(); return; } } std::multimap<std::string, COMMON *>::iterator beg, en, iter; beg = sear.lower_bound(aid); en = sear.upper_bound(aid); if(beg == en) { std::cout << "目标不存在,输入任意键返回\n"; getch(); return; } std::string aid_name = beg -> second -> get_name(); sear.erase(beg); beg = sear.lower_bound(aid_name); en = sear.upper_bound(aid_name); for(iter = beg; iter != en; ++iter) if(iter -> second -> get_id() == aid) {sear.erase(iter); break;} bool flag = 0; std::ofstream out; out.open("实验员.txt", std::ios::out); for(std::vector<TESTER*>::iterator it = tester.begin(); it != tester.end();) { if((*it) -> get_id() == aid){flag = 1; delete (*it); it = tester.erase(it); continue;} out << (*it) -> get_name() << " " << (*it) -> get_sex() << " "; out << (*it) -> get_age() << " " << (*it) -> get_id() << " "; out << (*it) -> get_laboratory() << " " << (*it) -> get_title() << std::endl; ++it; } out.close(); if(flag) {std::cout << "删除成功,输入任意键返回\n"; getch(); return;} out.open("教师.txt", std::ios::out); for(std::vector<TEACHER*>::iterator it = teacher.begin(); it != teacher.end();) { if((*it) -> get_id() == aid){flag = 1; delete (*it); it = teacher.erase(it); continue;} out << (*it) -> get_name() << " " << (*it) -> get_sex() << " "; out << (*it) -> get_age() << " " << (*it) -> get_id() << " "; out << (*it) -> get_department() << " " << (*it) -> get_profession() << " " << (*it) -> get_title() << std::endl; it++; } out.close(); if(flag) {std::cout << "删除成功,输入任意键返回\n"; getch(); return;} out.open("行政人员.txt", std::ios::out); for(std::vector<ADMINISTRATOR*>::iterator it = administrator.begin(); it != administrator.end();) { if((*it) -> get_id() == aid){flag = 1; delete (*it); it = administrator.erase(it); continue;} out << (*it) -> get_name() << " " << (*it) -> get_sex() << " "; out << (*it) -> get_age() << " " << (*it) -> get_id() << " "; out << (*it) -> get_politics() << " " << (*it) -> get_position() << std::endl; it++; } out.close(); if(flag) {std::cout << "删除成功,输入任意键返回\n"; getch(); return;} out.open("教师&行政人员.txt", std::ios::out); for(std::vector<TEAADMI*>::iterator it = teaadmi.begin(); it != teaadmi.end();) { if((*it) -> get_id() == aid){flag = 1; delete (*it); it = teaadmi.erase(it); continue;} out << (*it) -> get_name() << " " << (*it) -> get_sex() << " "; out << (*it) -> get_age() << " " << (*it) -> get_id() << " "; out << (*it) -> get_department() << " " << (*it) -> get_profession() << " " << (*it) -> get_title() << " "; out << (*it) -> get_politics() << " " << (*it) -> get_position() << std::endl; ++it; } out.close(); std::cout << "删除成功,输入任意键返回\n"; getch(); } void Edit_information() //修改信息 { std::cout << "输入目标ID以确认\n"; std::string aid; std::cin >> aid; for(unsigned int i = 0; i < aid.length(); i++) { if(aid[i] < '0' || aid[i] > '9') { std::cout << "输入非法,输入任意键返回\n"; getch(); return; } } std::multimap<std::string, COMMON *>::iterator beg, en, iter; beg = sear.lower_bound(aid); en = sear.upper_bound(aid); if(beg == en) { std::cout << "目标不存在,输入任意键返回\n"; getch(); return; } system("cls"); bool flag = 0; std::ofstream out; out.open("实验员.txt", std::ios::out); for(auto iter:tester) { if(iter -> get_id() == aid) { iter -> show(), std::cout << "\n\n根据提示输入修改信息\n\n"; while(iter -> change()) { system("cls"); iter -> show(); std::cout << "输入非法,请重新输入\n"; } flag = 1; } out << iter -> get_name() << " " << iter -> get_sex() << " "; out << iter -> get_age() << " " << iter -> get_id() << " "; out << iter -> get_laboratory() << " " << iter -> get_title() << std::endl; } out.close(); if(flag) {std::cout << "修改成功,输入任意键返回\n"; getch(); return;} out.open("教师.txt", std::ios::out); for(auto iter:teacher) { if(iter -> get_id() == aid) { iter -> show(), std::cout << "\n\n根据提示输入修改信息\n\n"; while(iter -> change()) { system("cls"); iter -> show(); std::cout << "输入非法,请重新输入\n"; } flag = 1; } out << iter -> get_name() << " " << iter -> get_sex() << " "; out << iter -> get_age() << " " << iter -> get_id() << " "; out << iter -> get_department() << " " << iter -> get_profession() << " " << iter -> get_title() << std::endl; } out.close(); if(flag) {std::cout << "修改成功,输入任意键返回\n"; getch(); return;} out.open("行政人员.txt", std::ios::out); for(auto iter:administrator) { if(iter -> get_id() == aid) { iter -> show(), std::cout << "\n\n根据提示输入修改信息\n\n"; while(iter -> change()) { system("cls"); iter -> show(); std::cout << "输入非法,请重新输入\n"; } flag = 1; } out << iter -> get_name() << " " << iter -> get_sex() << " "; out << iter -> get_age() << " " << iter -> get_id() << " "; out << iter -> get_politics() << " " << iter -> get_position() << std::endl; } out.close(); if(flag) {std::cout << "修改成功,输入任意键返回\n"; getch(); return;} out.open("教师&行政人员.txt", std::ios::out); for(auto iter:teaadmi) { if(iter -> get_id() == aid) { iter -> show(), std::cout << "\n\n根据提示输入修改信息\n\n"; while(iter -> change()) { system("cls"); iter -> show(); std::cout << "输入非法,请重新输入\n"; } flag = 1; } out << iter -> get_name() << " " << iter -> get_sex() << " "; out << iter -> get_age() << " " << iter -> get_id() << " "; out << iter -> get_department() << " " << iter -> get_profession() << " " << iter -> get_title() << " "; out << iter -> get_politics() << " " << iter -> get_position() << std::endl; } out.close(); std::cout << "修改成功,输入任意键返回\n"; getch(); } bool Query_information() //查询函数 { system("cls"); std::cout << "输入目标姓名或ID以查询\n"; std::string aid; std::cin >> aid; std::multimap<std::string, COMMON *>::iterator beg, en, iter; beg = sear.lower_bound(aid); en = sear.upper_bound(aid); if(beg == en) { std::cout << "查询结果为空,输入任意键返回\n"; getch(); return 0; } for(iter = beg; iter != en; ++iter) { iter -> second -> show(); std::cout << std::endl; } return 1; } void Browse_information() //浏览函数 { system("cls"); std::cout << "-------------------实验员-------------------\n"; std::cout << "姓名\t" << "性别\t" << "年龄\t" << "ID\t\t" << "实验室名称\t" << "职务\n"; for(auto iter:tester) iter -> show_row(); std::cout << "\n------------------行政人员------------------\n"; std::cout << "姓名\t" << "性别\t" << "年龄\t" << "ID\t\t" << "政治面貌\t" << "职称\n"; for(auto iter:administrator) iter -> show_row(); std::cout << "\n--------------------教师--------------------\n"; std::cout << "姓名\t" << "性别\t" << "年龄\t" << "ID\t\t" << "院系\t\t" << "专业\t\t" << "职务\n"; for(auto iter:teacher) iter -> show_row(); std::cout << "\n-----------------行政人员&教师--------------\n"; std::cout << "姓名\t" << "性别\t" << "年龄\t" << "ID\t\t" << "政治面貌\t" << "职称\t\t" << "院系\t\t" << "专业\t\t" << "职务\n"; for(auto iter:teaadmi) iter -> show_row(); } void count_information() //统计信息 { system("cls"); std::cout << "员工总人数:\t\t" << COMMON::get_person_sum() << std::endl; std::cout << "男性人数:\t\t" << COMMON::get_man_sum() << std::endl; std::cout << "女性人数:\t\t" << COMMON::get_woman_sum() << std::endl; std::cout << "教师人数:\t\t" << TEACHER::get_teacher_sum() << std::endl; std::cout << "实验员人数:\t\t" << TESTER::get_tester_sum() << std::endl; std::cout << "行政管理人员人数:\t" << ADMINISTRATOR::get_administrator_sum() << std::endl; std::cout << "行政管理人员&教师人数:\t" << TEAADMI::get_teaadmi_sum() << std::endl; std::cout << "\n\n输入任意键返回上一级\n"; getch(); } #endif // MYFUN_H_INCLUDED main.cpp 主函数: #include"interface.h" int main() { Information_load(); //加载信息 interface_login(); //首界面 room_delete(); //释放空间 // count_information(); return 0; }
r语言maxent包安装问题
**求助:****准备装RTextTools,差maxent** ``` > install.packages("C:/Users/lenovo/Desktop/RTextTools_1.4.2.tar.gz", repos = NULL, type = "source") Installing package into ‘C:/Users/lenovo/Documents/R/win-library/3.6’ (as ‘lib’ is unspecified) ERROR: dependency 'maxent' is not available for package 'RTextTools' * removing 'C:/Users/lenovo/Documents/R/win-library/3.6/RTextTools' Warning in install.packages : installation of package ‘C:/Users/lenovo/Desktop/RTextTools_1.4.2.tar.gz’ had non-zero exit status ``` **离线装maxent又报错** ``` C:/Users/lenovo/Documents/R/win-library/3.6/Rcpp/include/Rcpp/module/Module_generated_function.h:62:6: note: template<class RESULT_TYPE, class U0, class U1> void Rcpp::function(const char*, RESULT_TYPE (*)(U0, U1), const char*) void function(const char* name_, RESULT_TYPE (*fun)(U0 u0, U1 u1), const char* docstring = 0) { ^ C:/Users/lenovo/Documents/R/win-library/3.6/Rcpp/include/Rcpp/module/Module_generated_function.h:54:6: note: template<class RESULT_TYPE, class U0> void Rcpp::function(const char*, RESULT_TYPE (*)(U0), Rcpp::List, const char*) void function(const char* name_, RESULT_TYPE (*fun)(U0 u0), Rcpp::List formals, const char* docstring = 0) { ^ C:/Users/lenovo/Documents/R/win-library/3.6/Rcpp/include/Rcpp/module/Module_generated_function.h:46:6: note: template<class RESULT_TYPE, class U0> void Rcpp::function(const char*, RESULT_TYPE (*)(U0), const char*) void function(const char* name_, RESULT_TYPE (*fun)(U0 u0), const char* docstring = 0) { ^ C:/Users/lenovo/Documents/R/win-library/3.6/Rcpp/include/Rcpp/module/Module_generated_function.h:38:6: note: template<class RESULT_TYPE> void Rcpp::function(const char*, RESULT_TYPE (*)(), Rcpp::List, const char*) void function(const char* name_, RESULT_TYPE (*fun)(void), Rcpp::List formals, const char* docstring = 0) { ^ C:/Users/lenovo/Documents/R/win-library/3.6/Rcpp/include/Rcpp/module/Module_generated_function.h:30:6: note: template<class RESULT_TYPE> void Rcpp::function(const char*, RESULT_TYPE (*)(), const char*) void function(const char* name_, RESULT_TYPE (*fun)(void), const char* docstring = 0) { ^ In file included from C:/Users/lenovo/Documents/R/win-library/3.6/Rcpp/include/RcppCommon.h:61:0, from C:/Users/lenovo/Documents/R/win-library/3.6/Rcpp/include/Rcpp.h:27, from maxent.h:8, from rmaxent.cpp:14: C:/Rtools/mingw_32/i686-w64-mingw32/include/c++/functional:1834:11: note: template<class _Signature> class std::function class function; ^ make: *** [C:/PROGRA~1/R/R-36~1.2PA/etc/i386/Makeconf:215: rmaxent.o] Error 1 ERROR: compilation failed for package 'maxent' * removing 'C:/Users/lenovo/Documents/R/win-library/3.6/maxent' Warning in install.packages : installation of package ‘C:/Users/lenovo/Desktop/maxent_1.3.3.tar.gz’ had non-zero exit status ```
在VC++6.0上编译运行没问题,在LintCode上编译出了问题,是哪里有问题?
``` //功能:输入两个整数,计算并输出它们的和 //语言:C++ #include<iostream> using namespace std; int main() { int a,b,sum; cin >> a >> b; //输入这两个数 sum = a + b; cout << sum << endl; //输出和 return 0; } ``` 上面的代码在Visual C++6.0上运行没有任何问题,但在LintCode上面会出现如下错误警告,但我看不懂。 ``` /code/Main.cpp: In function 'int main(int, char**)': /code/Main.cpp:29:32: error: conflicting declaration of C function 'int main(int, char**)' int main(int argc, char *argv[]) { ^ In file included from /code/Main.cpp:27:0: /code/Solution.cpp:5:5: note: previous declaration 'int main()' int main() ^ /code/Main.cpp:58:9: error: 'Solution' was not declared in this scope Solution solution; ^ /code/Main.cpp:60:15: error: 'solution' was not declared in this scope ans = solution.aplusb(a, b); ^ ``` 哪里有问题呢?
Crazy Tank 坦克的算法
Problem Description Crazy Tank was a famous game about ten years ago. Every child liked it. Time flies, children grow up, but the memory of happy childhood will never go. Now you’re controlling the tank Laotu on a platform which is H meters above the ground. Laotu is so old that you can only choose a shoot angle(all the angle is available) before game start and then any adjusting is not allowed. You need to launch N cannonballs and you know that the i-th cannonball’s initial speed is Vi. On the right side of Laotu There is an enemy tank on the ground with coordination(L1, R1) and a friendly tank with coordination(L2, R2). A cannonball is considered hitting enemy tank if it lands on the ground between [L1,R1] (two ends are included). As the same reason, it will be considered hitting friendly tank if it lands between [L2, R2]. Laotu's horizontal coordination is 0. The goal of the game is to maximize the number of cannonballs which hit the enemy tank under the condition that no cannonball hits friendly tank. The g equals to 9.8. Input There are multiple test case. Each test case contains 3 lines. The first line contains an integer N(0≤N≤200), indicating the number of cannonballs to be launched. The second line contains 5 float number H(1≤H≤100000), L1, R1(0<L1<R1<100000) and L2, R2(0<L2<R2<100000). Indicating the height of the platform, the enemy tank coordinate and the friendly tank coordinate. Two tanks may overlap. The third line contains N float number. The i-th number indicates the initial speed of i-th cannonball. The input ends with N=0. Output For each test case, you should output an integer in a single line which indicates the max number of cannonballs hit the enemy tank under the condition that no cannonball hits friendly tank. Sample Input 2 10 10 15 30 35 10.0 20.0 2 10 35 40 2 30 10.0 20.0 0 Sample Output 1 0
Jenga 程序的编写
Problem Description In their spare time of training, Alice and Charles often play Jenga together. As they've played the game together so many times, they both know each others' performance as well as themselves'. Now with their success rate of each move provided, can you tell in what probability each of them will win? And of course, Alice and Charles, like other ACM-ICPC contestants such as you, are very clever. Jenga is a game of physical and mental skill. In Jenga, players take turns to remove a block from a tower and balance it on top, creating a taller and increasingly unstable structure as the game progresses. Jenga is played with 54 wooden blocks. Each block is three times as long as it is wide. To set up the game, the included loading tray is used to stack the initial tower which has 18 levels of three blocks placed adjacent to each other along their long side and perpendicular to the previous level (so, for example, if the blocks in the first level lie lengthwise north-south, the second level blocks will lie east-west). Once the tower is built, the players take turns to move. Moving in Jenga consists of taking one and only one block from any level (except those mentioned later) of the tower, and placing it on the topmost level in order to complete it. The blocks in the top level, and the level below it if the top level is not completed, cannot be removed. However, if the top level is completed, the blocks in the one below it can be removed. The removed block should be placed to make the top level as same as the other level (with no block removed). The move is successful if the tower does not fall. The game ends when the tower falls, or no block can be removed without making the tower fall (rarely happened). And the loser is the player who made the tower fall (i.e., whose turn it was when the tower fell), or who cannot make the move. Now let's consider each level of the tower, there're only four types of valid arrangement of wooden blocks, as illustrated above. At the beginning of the game, they're all of the type A (or rotated by 90 degrees). And by removing a block from type A, one will get either type B or type C (or the mirrored equivalent of type C). No block from type B can be removed without making the tower fall. From type C we can only remove a block and result in type D. Then no block can be removed further. So there are only three types of moves: (1) A -> B, (2) A -> C and (3) C -> D, in addition to adding the removed block to the top level. As Alice and Charles have played Jenga so many times, their success rate of each move is very stable and can be formulated as P = b - d*n, where b is the player's base success rate of this type of move, d is the decrease of success rate for each additional level, and n is the number of levels in the tower before this move. The incomplete top level also counts as one level. For example, if the game begins with 18 levels, and both players have the same performance with b = 2.8 and d = 0.1, then P will be 1.0 for the first turn, and become 0.9 between the 2nd and the 4th turns. If P does not lie in the range [0, 1], the nearest number in the range is indicated. (E.g. when a player cannot fail the first several moves, P will be more than 1 until n is a bit larger.) Input The input file contains multiple test cases. The first line of the input file is a single integer T (T ≤ 500), the number of test cases. Each test cases begins with a line of n0 (3 ≤ n0 ≤ 18), the number of levels in the tower when the game starts. (When n0 is not 18, the rule sare the same.) The second line contains 6 real numbers ba1, da1, ba2, da2, ba3, da3, indicating Alice's base success rates and the decreases of success rates for each of the three moves: (1) A -> B, (2) A -> C and (3) C -> D. The third line also contains 6 real numbers bc1, dc1, bc2, dc2, bc3, dc3, those of Charles. (0 ≤ b - d*n0 ≤ 2 and 0 < d ≤ 0.5 for all the 6 pairs of parameters. No real number will have more than 4 digits after the decimal point.) Output For each test case, print a line with Alice's winning probability, assume that she always moves first. Your answer should be rounded to the 4th digit after the decimal point. Sample Input 2 3 1.3 0.1 1.3 0.1 1.3 0.1 1.3 0.1 1.3 0.1 1.3 0.1 4 1.5 0.1 1.5 0.1 1.5 0.1 1.5 0.1 1.5 0.1 1.5 0.1 Sample Output 0.1810 0.8190
python安装pyinstaller报错
``` ERROR: Command errored out with exit status 1: command: 'c:\users\巩子昆\appdata\local\programs\python\python37-32\python.exe' 'c:\users\巩子昆\appdata\local\programs\python\python37-32\lib\site-packages\pip\_vendor\pep517\_in_process.py' prepare_metadata_for_build_wheel 'C:\Users\巩子昆\AppData\Local\Temp\tmp5hj8yy69' cwd: C:\Users\巩子昆\AppData\Local\Temp\pip-install-_y8nunuv\pyinstaller Complete output (36 lines): running dist_info creating C:\Users\巩子昆\AppData\Local\Temp\pip-install-_y8nunuv\pyinstaller\pip-wheel-metadata\PyInstaller.egg-info writing C:\Users\巩子昆\AppData\Local\Temp\pip-install-_y8nunuv\pyinstaller\pip-wheel-metadata\PyInstaller.egg-info\PKG-INFO writing dependency_links to C:\Users\巩子昆\AppData\Local\Temp\pip-install-_y8nunuv\pyinstaller\pip-wheel-metadata\PyInstaller.egg-info\dependency_links.txt writing entry points to C:\Users\巩子昆\AppData\Local\Temp\pip-install-_y8nunuv\pyinstaller\pip-wheel-metadata\PyInstaller.egg-info\entry_points.txt writing requirements to C:\Users\巩子昆\AppData\Local\Temp\pip-install-_y8nunuv\pyinstaller\pip-wheel-metadata\PyInstaller.egg-info\requires.txt writing top-level names to C:\Users\巩子昆\AppData\Local\Temp\pip-install-_y8nunuv\pyinstaller\pip-wheel-metadata\PyInstaller.egg-info\top_level.txt writing manifest file 'C:\Users\巩子昆\AppData\Local\Temp\pip-install-_y8nunuv\pyinstaller\pip-wheel-metadata\PyInstaller.egg-info\SOURCES.txt' reading manifest file 'C:\Users\巩子昆\AppData\Local\Temp\pip-install-_y8nunuv\pyinstaller\pip-wheel-metadata\PyInstaller.egg-info\SOURCES.txt' reading manifest template 'MANIFEST.in' Error in sitecustomize; set PYTHONVERBOSE for traceback: SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte (sitecustomize.py, line 7) no previously-included directories found matching 'bootloader\build' no previously-included directories found matching 'bootloader\.waf-*' no previously-included directories found matching 'bootloader\.waf3-*' no previously-included directories found matching 'bootloader\waf-*' no previously-included directories found matching 'bootloader\waf3-*' no previously-included directories found matching 'bootloader\_sdks' no previously-included directories found matching 'bootloader\.vagrant' warning: no previously-included files found matching 'bootloader\.lock-waf*' no previously-included directories found matching 'doc\source' no previously-included directories found matching 'doc\_build' warning: no previously-included files matching '*.tmp' found under directory 'doc' warning: no files found matching 'news\_template.rst' no previously-included directories found matching 'news' no previously-included directories found matching 'old' no previously-included directories found matching 'scripts' no previously-included directories found matching 'tests\scripts' no previously-included directories found matching '.github' warning: no previously-included files found matching '.*' warning: no previously-included files found matching '*.yml' warning: no previously-included files found matching '*~' warning: no previously-included files found matching '.directory' writing manifest file 'C:\Users\巩子昆\AppData\Local\Temp\pip-install-_y8nunuv\pyinstaller\pip-wheel-metadata\PyInstaller.egg-info\SOURCES.txt' creating 'C:\Users\巩子昆\AppData\Local\Temp\pip-install-_y8nunuv\pyinstaller\pip-wheel-metadata\PyInstaller.dist-info' error: invalid command 'bdist_wheel' ---------------------------------------- ERROR: Command errored out with exit status 1: 'c:\users\巩子昆\appdata\local\programs\python\python37-32\python.exe' 'c:\users\巩子昆\appdata\local\programs\python\python37-32\lib\site-packages\pip\_vendor\pep517\_in_process.py' prepare_metadata_for_build_wheel 'C:\Users\巩子昆\AppData\Local\Temp\tmp5hj8yy69' Check the logs for full command output. ``` 饶了我吧 我就一小白
page pase error: Error reading included file
开发环境:struts2 +spring + freemarker 在index.html页面引用其他的页面报了上面的错,但是刷新以下又好了。 index页面<#include 'common/header.html' /> index页面时有缓存的,缓存时间为3分钟。求大神赐教!
Jenga 是如何实现的呢
Problem Description In their spare time of training, Alice and Charles often play Jenga together. As they've played the game together so many times, they both know each others' performance as well as themselves'. Now with their success rate of each move provided, can you tell in what probability each of them will win? And of course, Alice and Charles, like other ACM-ICPC contestants such as you, are very clever. Jenga is a game of physical and mental skill. In Jenga, players take turns to remove a block from a tower and balance it on top, creating a taller and increasingly unstable structure as the game progresses. Jenga is played with 54 wooden blocks. Each block is three times as long as it is wide. To set up the game, the included loading tray is used to stack the initial tower which has 18 levels of three blocks placed adjacent to each other along their long side and perpendicular to the previous level (so, for example, if the blocks in the first level lie lengthwise north-south, the second level blocks will lie east-west). Once the tower is built, the players take turns to move. Moving in Jenga consists of taking one and only one block from any level (except those mentioned later) of the tower, and placing it on the topmost level in order to complete it. The blocks in the top level, and the level below it if the top level is not completed, cannot be removed. However, if the top level is completed, the blocks in the one below it can be removed. The removed block should be placed to make the top level as same as the other level (with no block removed). The move is successful if the tower does not fall. The game ends when the tower falls, or no block can be removed without making the tower fall (rarely happened). And the loser is the player who made the tower fall (i.e., whose turn it was when the tower fell), or who cannot make the move. Now let's consider each level of the tower, there're only four types of valid arrangement of wooden blocks, as illustrated above. At the beginning of the game, they're all of the type A (or rotated by 90 degrees). And by removing a block from type A, one will get either type B or type C (or the mirrored equivalent of type C). No block from type B can be removed without making the tower fall. From type C we can only remove a block and result in type D. Then no block can be removed further. So there are only three types of moves: (1) A -> B, (2) A -> C and (3) C -> D, in addition to adding the removed block to the top level. As Alice and Charles have played Jenga so many times, their success rate of each move is very stable and can be formulated as P = b - d*n, where b is the player's base success rate of this type of move, d is the decrease of success rate for each additional level, and n is the number of levels in the tower before this move. The incomplete top level also counts as one level. For example, if the game begins with 18 levels, and both players have the same performance with b = 2.8 and d = 0.1, then P will be 1.0 for the first turn, and become 0.9 between the 2nd and the 4th turns. If P does not lie in the range [0, 1], the nearest number in the range is indicated. (E.g. when a player cannot fail the first several moves, P will be more than 1 until n is a bit larger.) Input The input file contains multiple test cases. The first line of the input file is a single integer T (T ≤ 500), the number of test cases. Each test cases begins with a line of n0 (3 ≤ n0 ≤ 18), the number of levels in the tower when the game starts. (When n0 is not 18, the rule sare the same.) The second line contains 6 real numbers ba1, da1, ba2, da2, ba3, da3, indicating Alice's base success rates and the decreases of success rates for each of the three moves: (1) A -> B, (2) A -> C and (3) C -> D. The third line also contains 6 real numbers bc1, dc1, bc2, dc2, bc3, dc3, those of Charles. (0 ≤ b - d*n0 ≤ 2 and 0 < d ≤ 0.5 for all the 6 pairs of parameters. No real number will have more than 4 digits after the decimal point.) Output For each test case, print a line with Alice's winning probability, assume that she always moves first. Your answer should be rounded to the 4th digit after the decimal point. Sample Input 2 3 1.3 0.1 1.3 0.1 1.3 0.1 1.3 0.1 1.3 0.1 1.3 0.1 4 1.5 0.1 1.5 0.1 1.5 0.1 1.5 0.1 1.5 0.1 1.5 0.1 Sample Output 0.1810 0.8190
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员变量,局部变量都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.数据库表设计 列名 中文名称 数据类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
相关热词 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数 c#日期精确到分钟 c#自定义异常必须继承 c#查表并返回值 c# 动态 表达式树 c# 监控方法耗时 c# listbox c#chart显示滚动条
立即提问